Elasticsearch с шиной, выделение не работает

Должно быть, я что-то здесь упускаю, но когда я пытаюсь выделить при поиске с помощью Elasticsearch, я вообще не вижу выделения, но и ошибок нет. Я не думаю, что это проблема шин, но я упоминаю о шинах на всякий случай, если это важно. Индексация с помощью Tire довольно проста (некоторые поля удалены для краткости):

mapping :_source => { :excludes => ['attachment'] } do
  indexes :id, :type => 'integer'
  indexes :title, :store => true
  indexes :attachment, :type => 'attachment', :_source => { :enabled => false }
end

Используя curl, я могу попробовать этот запрос, который отлично работает, но в результатах нет выделения:

curl -XPOST http://localhost:9200/myobject/_search\?pretty\=true -d '{             
  "query": {"query_string": {"query": "foobar"}},
  "highlight": {"fields": {"Title":{}}}
}'

Обратите внимание, что я добавил «:store => true» в сопоставление просто для того, чтобы убедиться, хотя я не думаю, что это необходимо, чтобы подсветка работала. Итак, я предполагаю, что мне что-то не хватает либо в отображении, либо в спецификации запроса, но я этого не вижу. Любые предложения будут очень признательны. Спасибо.


person Masonoise    schedule 10.08.2012    source источник


Ответы (1)


В именах полей в elasticsearch учитывается регистр. Title и title — это два разных поля. Попробуйте этот запрос:

curl -XPOST http://localhost:9200/myobject/_search\?pretty\=true -d '{             
  "query": {"query_string": {"query": "foobar"}},
  "highlight": {"fields": {"title":{}}}
}
person imotov    schedule 10.08.2012
comment
Блестяще, спасибо. Поле в индексируемом исходном объекте данных называлось Title, но похоже, что отображение Tire: title отображает его в нижнем регистре, что я должен был заметить в выводе curl, но почему-то пропустил. Завиток теперь работает, но использование Tire не всегда дает правильное выделение. Однострочный s = MyObject.search(q, :highlight =› :title) не работает, но блочный поиск с подсветкой :title работает. В любом случае большое спасибо за быструю помощь. - person Masonoise; 11.08.2012