9

我浏览了 github 中的文档:http: //github.com/outoftime/sunspot以找到突出显示的解决方案,但它似乎对我不起作用。

我的 Job 模型有这样的块(故意省略了一些字段):

  可搜索的
    文本:名称

    字符串 :name, :stored => true
    时间:updated_at
    时间:created_at
    时间:expires_on

我有这个,它返回结果:

搜索 = Sunspot.search(Job) 做
  关键字 'Senior', :fields => "name", :highlight => true
结尾

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

并获得这样的点击:

>> 搜索.点击
=> [#, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #, #]

这是查询的结果,显示名称:

>> search.results.collect{|x| x.name}
=> [“高级助理,执行会员”,“高级国际成本核算分析师”,“高级流程工程师”,“副高级流程经理”,“高级工程师(旋转设备)”,“高级技术专家,印度尼西亚”,“高级燃烧工程师”,“高级项目工程师/工程经理”,“高级下部结构设计专家,孟加拉国”,“高级监督工程师(上部结构),孟加拉国”,“高级计划和战略发展顾问 - 顾问”,“高级助理(自然资源)管理专员)”、“高级经理(阿富汗农业市场开发)”、“高级材料工程师(主桥)、孟加拉国”、“高级驻地工程师(主桥)、孟加拉国”,“高级驻地工程师(主桥),孟加拉国”,“高级材料工程师(主桥),孟加拉国”]

我的问题来了..当我得到亮点时,没有返回:

>> 搜索.hits.collect{|x| x.highlight(:name)}
=> [无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无,无]

即使这样,也不会返回亮点点击:

>> 搜索.hits.collect{|x| x.亮点}
=> [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [] , []]

我是否缺少其他标志或参数?

4

1 回答 1

6

我相信这与是否存储文本字段有关。这有什么不同吗:

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

希望能做到!

于 2010-10-22T04:22:06.400 回答