2010-07-30 14 views
8

Ho esaminato i documenti in github: http://github.com/outoftime/sunspot per trovare soluzioni per l'evidenziazione, ma non sembra funzionare per me.Punti salienti di Sunspot non visualizzati

Il mio modello di lavoro ha qualcosa come questo blocco (omesso alcuni campi di proposito):

 
    searchable do 
    text :name 

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

ho questo, che restituisce i risultati:

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

e ottenere i successi come tale:

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

e qui erano i risultati della query, visualizzando il nome:

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

E qui viene il mio problema .. quando ricevo i punti salienti, nessuno è stato restituito:

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

e anche questo, non restituisce evidenziare successi:

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

Am I mancano altri flag o argomenti?

risposta

5

Credo che abbia a che fare con se il campo di testo è memorizzato. Questo fa la differenza:

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

Ecco come il: campo corpo è configurato in questo esempio:

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

L': campo corpo è uno che i punti salienti vengono interrogati per nel controller:

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

speranza che lo fa!

+0

Questo è il punto, ho provato questa risposta e ha funzionato. I campi che vuoi evidenziare devono essere memorizzati. Non dimenticare di reindex solr di nuovo .. e avere i campi dinamici necessari sul posto (come * _texts). – fifigyuri

Problemi correlati