3

obj_propertiesプロパティ名 -> プロパティ値のハッシュであるproperty でドキュメントにインデックスを付けています。Elasticsearch は、一部のプロパティ値が日付であると推測しており、同じプロパティの後続の値が日付として解析できない場合、次のエラーが発生します。

org.elasticsearch.index.mapper.MapperParsingException: failed to parse date field <NON-DATE FIELD within obj_properties>

obj_propertiesそのため、日付検出とその中にネストされているものを無効にしたいと思います。あたり

http://elasticsearch-users.115913.n3.nabble.com/Date-Detection-not-always-wanted-tp1638890p1639415.html

(注、リンクされた投稿にはタイプミスが含まれていると思います-フィールドはdate_formatsではなく である必要がありますdate_formatが、両方の方法を試しました)

次のマッピングを作成しました

mapping do
    indexes :name
    indexes :obj_properties, type: "object", date_formats: "none"
  end

しかし、私は引き続き同じ例外を受け取ります。のプロパティはobj_properties事前にわからないため、型の完全なマッピングを作成することはできません。何か案は?日付検出を無効にすることは正しいアプローチですか?

4

2 に答える 2

2

typeマッピングで指定することにより、特定の日付検出をオフにすることができます。

curl -XPUT 'http://127.0.0.1:9200/myindex/?pretty=1'  -d '
{
   "mappings" : {
      "mytype" : {
         "date_detection" : 0
      }
   }
}
'

または、デフォルトのマッピングで指定することにより、インデックス内のすべてのタイプに対して:

curl -XPUT 'http://127.0.0.1:9200/myindex/?pretty=1'  -d '
{
   "mappings" : {
      "_default_" : {
         "date_detection" : 0
      }
   }
}
'
于 2013-02-12T11:28:52.050 に答える
1
mapping(date_detection: false) do
  indexes :name
  indexes :obj_properties, type: "object"
end

次に、ここに記載されているcurl 'http://127.0.0.1:9200/myindex/_mapping?pretty=1'ものが含まれますdate_detection = false

これはインデックス全体に当てはまると思いますが、特定のフィールドではありません

于 2013-03-26T14:18:13.180 に答える