2010-07-30 33 views
8

Tôi đã xem qua các tài liệu trong github: http://github.com/outoftime/sunspot để tìm các giải pháp để làm nổi bật, nhưng nó dường như không hoạt động đối với tôi.Điểm nổi bật của điểm ảnh không xuất hiện

mô hình Job của tôi có một cái gì đó giống như khối này (bỏ qua một số lĩnh vực có mục đích):

 
    searchable do 
    text :name 

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

Tôi có điều này, trong đó trả về kết quả:

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

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

và nhận được hit như vậy:

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

và đây là kết quả của truy vấn, hiển thị tên:

 
>> 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"] 

và ở đây có vấn đề của tôi .. khi tôi nhận được những điểm nổi bật, không ai được trả về:

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

và ngay cả điều này, không trả lại hit nổi bật:

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

Am I thiếu các cờ hoặc đối số khác?

Trả lời

5

Tôi tin rằng nó phải liên quan đến việc trường văn bản có được lưu trữ hay không. Điều này tạo sự khác biệt:

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

Đó là như thế nào: lĩnh vực cơ thể được cấu hình trong ví dụ này:

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

Các: lĩnh vực cơ thể là một trong đó những điểm nổi bật được truy vấn cho trong bộ điều khiển:

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

Hy vọng điều đó sẽ xảy ra!

+0

Đây là vấn đề, tôi đã thử câu trả lời này và nó đã hoạt động. Các trường mà bạn muốn làm nổi bật phải được lưu trữ. Đừng quên reindex solr lần nữa .. và có các trường động cần thiết tại chỗ (chẳng hạn như * _texts). – fifigyuri

Các vấn đề liên quan