Солнечные пятна не появляются - PullRequest
9 голосов
/ 30 июля 2010

Я просмотрел документы в github: http://github.com/outoftime/sunspot, чтобы найти решения для выделения, но, похоже, это не работает для меня.

В моей модели работы есть что-то вроде этого блока (некоторые поля пропущены специально):

  searchable do
    text :name

    string :name, :stored => true
    time :updated_at
    time :created_at
    time :expires_on

У меня есть это, которое возвращает результаты:

search = Sunspot.search(Job) do
  keywords 'Senior', :fields => "name", :highlight => true
end

=> 0, :fl=>"* score", :"hl.simple.pre"=>"@@@hl@@@", :qf=>"name_text", :rows=>30, :"hl.simple.post"=>"@@@endhl@@@", :hl=>"on", :q=>"senior", :fq=>["type:Job"], :defType=>"dismax"}>

и получение хитов как таковых:

>> search.hits
=> [#, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #]

и вот результаты запроса с отображением имени:

>> search.results.collect{|x| x.name}
=> ["Senior Associate, Executive Membership", "Senior International Costing Analyst", "Senior Process Engineer", "Deputy Senior Process Manager", "Senior Engineer (Rotating Equipment)", "Senior Technical Expert, Indonesia", "Senior Combustion Engineer", "Senior Project Engineer/ Engineering Manager", "Senior Substructure Design Specialist, Bangladesh", "Senior Supervision Engineer (Superstructure), Bangladesh", "Senior Program and Strategy Development Advisor- Consultant", "Senior Associate (Natural Resource Management Specialist)", "Senior Manager (Agriculture Market Development, Afghanistan)", "Senior Material Engineer (Main Bridge), Bangladesh", "Senior Resident Engineer (Main Bridge), Bangladesh", "Senior Resident Engineer (Main Bridge), Bangladesh", "Senior Material Engineer (Main Bridge), Bangladesh"]

и вот моя проблема .. когда я получаю основные моменты, ни один не был возвращен:

>> search.hits.collect{|x| x.highlight(:name)}
=> [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil]

и даже это, не возвращает хиты основного момента:

>> search.hits.collect{|x| x.highlights}
=> [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []]

Мне не хватает других флагов или аргументов?

1 Ответ

6 голосов
/ 22 октября 2010

Я полагаю, это связано с тем, хранится ли текстовое поле. Имеет ли это значение:

searchable do
    text :name, :stored => true
    ...

Вот как настраивается поле: body в этом примере:

http://github.com/outoftime/sunspot-rails-example/blob/master/app/models/post.rb

Поле: body - это поле, к которому запрашиваются блики в контроллере:

http://github.com/outoftime/sunspot-rails-example/blob/master/app/controllers/searches_controller.rb

Надеюсь, что это делает!

...