2015-03-10 5 views
0

Использование 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 - это поля, в которых он был найден. Это возможно?

+1

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-explain.html –

ответ

0

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

Ваш запрос должен выглядеть следующим образом.

{ 
    "query" : {...}, 
    "highlight" : { 
     "fields" : { 
      "_all" : {} 
     } 
    } 
} 
Смежные вопросы