2013-02-11 3 views
3

Я индексирую документ с свойством obj_properties, который является хешем имени свойства -> значение свойства. elasticsearch делает вывод, что некоторые значения свойств являются датами, что приводит к следующей ошибке, когда она встречает последующее значение для того же свойства, которое не может быть проанализировано как дата.Отключить обнаружение даты в отображении elasticsearch Tire

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

Итак, я хотел бы, чтобы отключить обнаружение даты для obj_properties и ничего вложенного в него. Per

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 не известны заранее, поэтому невозможно создать исчерпывающее отображение типов. Есть идеи? Является ли определение даты обнаружения правильным подходом?

ответ

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 
     } 
    } 
} 
' 
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, упомянутые here

Хотя я считаю, что это относится ко всему индексу - не к определенному полю

Смежные вопросы