【问题标题】:How to avoid retrieve entire stored field from solr如何避免从 solr 检索整个存储字段
【发布时间】:2012-04-24 16:10:56
【问题描述】:

我在 rails 应用程序中使用 sunspot 和 solr 来搜索电子书内容,对于突出显示功能,我必须将 ebook_content 设置为存储文件,每次我向 solr 查询结果时,它都会发回关于书,这使得查询很慢。

如果没有存储字段,我怎么能只得到结果?

【问题讨论】:

    标签: ruby-on-rails-3 solr sunspot


    【解决方案1】:

    fl parameter of Solr 允许您指定要在结果中返回的字段。如果您有字段id, title, ebook_content,那么您可以使用fl=id,title 省略ebook_content 字段。我认为 Solr 不支持获取所有字段除了一个(例如-ebook_content)。

    更新

    如果您不想在正常结果中返回该字段,但仍希望在该字段上使用highlighting,请按照我上面的描述排除该字段,然后打开荧光笔:

    hl=true
    

    设置应突出显示的字段:

    hl.fl=ebook_content
    

    并设置高亮片段的大小(以字符为单位):

    hl.fragsize=50
    

    您完成的查询如下所示:

    ?q=search term&fl=id,title&hl=true&hl.fl=ebook_content&hl.fragsize=50
    

    【讨论】:

    • 如果我将 ebook_content 从 fl 中取出,我无法获得高亮显示,这里有什么特殊查询吗?
    • ...您想在ebook_content 上突出显示,但您不想将其作为结果的一部分返回?我真的不明白...
    • 我的意思是,我只需要 ebook_content 的高亮部分,而不是字段的全部内容,它有时需要传输 100k 数据
    • 好的,所以你想要一个来自ebook_content的摘录,在突出显示的位置;对吗?
    • 对不起,我的回复晚了,是的,我测试了它,它可以工作,谢谢~
    猜你喜欢
    • 1970-01-01
    • 2015-08-14
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多