【问题标题】:Sunspot highlights not appearing太阳黑子亮点未出现
【发布时间】:2011-03-23 03:20:39
【问题描述】:

我浏览了 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.亮点} => [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [] , []]

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

【问题讨论】:

    标签: ruby-on-rails search sunspot hit-highlighting


    【解决方案1】:

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

    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

    希望能做到!

    【讨论】:

    • 这就是重点,我试过这个答案,它奏效了。必须存储您要突出显示的字段。不要忘记再次重新索引 solr.. 并准备好必要的动态字段(例如 *_texts)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    相关资源
    最近更新 更多