Знакомство с полем, по которому был получен запрос

Использование Elasticsearch через Searchkick.

Мои документы выглядят примерно так:

{
    "_id" : ObjectId("54f8672f258f83ac4e7783e5"),
    "n" : "Figth Club",
    "dst" : "video",
    "detail" : {
        est: "El club de la lucha",
        ent: "Figth club",
        hut: "Harcosok klubja"
    }
}

Моя модель предмета:

class Item
 include Mongoid::Document
 searchkick

 def search_data
        {
            n: n,
            est: detail.est,
            ent: detail.ent,
            hut: detail.hut,
        }
 end

end

Поисковый запрос будет выглядеть примерно так:

Item.search(query, fields: [:n, :est, :ent, :hut], limit: 10).to_a

Я хотел бы знать, в каком поле был найден запрос. Например, если query="El club de la lucha" я хочу знать, что detail.est это поля, в которых он был найден. Это возможно?


person borjagvo    schedule 10.03.2015    source источник
comment
elasticsearch.org/guide/en/elasticsearch/reference/ текущий/   -  person Dan Tuffery    schedule 10.03.2015


Ответы (1)


Что вам нужно, так это выделить результаты, которые соответствуют вашему поиску. Пожалуйста, взгляните на предлагаемый API. https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-highlighting.html

Ваш запрос должен выглядеть так.

{
    "query" : {...},
    "highlight" : {
        "fields" : {
             "_all" : {}
        }
    }
}
person Manolis    schedule 10.03.2015