強調表示の解決策を見つけるために、github: http://github.com/outoftime/sunspotのドキュメントを調べましたが、うまくいかないようです。
私の Job モデルには次のブロックのようなものがあります (意図的にいくつかのフィールドを省略しています):
検索可能
テキスト:名前
文字列 :name, :stored => true
時間:updated_at
時間:created_at
時間:expires_on
私はこれを持っています。これは結果を返します:
search = Sunspot.search(ジョブ) do キーワード 'Senior', :fields => "name", :highlight => true 終わり => 0, :fl=>"* スコア", :"hl.simple.pre"=>"@@@hl@@@", :qf=>"name_text", :rows=>30, :"hl .simple.post"=>"@@@endhl@@@", :hl=>"on", :q=>"先輩", :fq=>["タイプ:仕事"], :defType=>"ディスマックス"}>
ヒットをそのまま取得します:
>> 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", "シニア プロセス エンジニア"燃焼エンジニア」、「シニアプロジェクトエンジニア/エンジニアリングマネージャー」、「シニアサブストラクチャー設計スペシャリスト、バングラデシュ」、「シニアスーパービジョンエンジニア(上部構造)、バングラデシュ」、「シニアプログラムおよび戦略開発アドバイザー-コンサルタント」、「シニアアソシエイト(天然資源Management Specialist)」、「Senior Manager (Agriculture Market Development、アフガニスタン)」、「Senior Material Engineer (Main Bridge)、バングラデシュ」、「Senior Resident Engineer (Main Bridge)、バングラデシュ」、「シニアレジデントエンジニア(メインブリッジ)、バングラデシュ」、「シニアマテリアルエンジニア(メインブリッジ)、バングラデシュ」]
ここに私の問題があります..ハイライトを取得すると、何も返されませんでした:
>> search.hits.collect{|x| x.highlight(:名前)}
=> [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil]
これでも、ハイライト ヒットを返しません。
>> search.hits.collect{|x| x.ハイライト}
=> [[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[]、[] 、[]]
他のフラグや引数がありませんか?