【问题标题】:How to highlight all matched word in single snippet in solr如何在solr的单个片段中突出显示所有匹配的单词
【发布时间】:2015-03-07 03:07:49
【问题描述】:

全部:

现在,我正在使用 SOLR 高亮功能,但我想问的一件事是:

假设我要搜索关键字fund和value:

fund AND value

而返回高亮部分是这样的:

"highlighting": {
    "blk_0019": {
      "content": [
        "philosophy of the <em>fund</em> – <em>value</em> and turning point. \n \n MUSA was an orphaned"
      ]
    },
    "blk_0006": {
      "content": [
        "Global Equities <em>Fund</em> Ltd. \n \n CONFIDENTIAL enclosed"
      ]
    }
}

问题是我确定 blk_0019 和 blk_0006 既有资金又有价值(显然我使用资金 AND 报告),因为我设置 hl.fragsize=100,如果资金和价值在一个文档中的位置不够接近,他们不能在同一个 sn-p 中同时显示。在 blk_0019 中,solr 突出显示了基金和价值,但在 blk_0006 中,只显示了基金。

如何在单个 sn-p 中显示两者匹配,而忽略它们之间的文本,就像在 Google 中一样......

还有一些小问题:

[1] 如何指定只搜索大写的单词,如 Hello HELLO 在 Solr 中?

[2]如何查找全大写AND(全大写“AND”将被视为逻辑运算符)

谢谢

【问题讨论】:

    标签: solr highlight


    【解决方案1】:

    这取决于您使用的荧光笔。例如,对于标准荧光笔,您可以设置 hl.snippets=5(默认为 1)。然后你会得到 5 个 sn-ps/fragments(最多),每个最大长度为 hl.fragsize

    它们作为多个值返回,因此您需要自己加入它们(例如使用“...”)。

    【讨论】:

    • 感谢您的帮助。我想知道一个问题:如何安排高亮结果的优先级?假设我要搜索:+Fund OR (value USA),看来 +Fund 是一个非常重要的关键字,我肯定想在高亮结果中显示它的匹配项,但是如果文档中的匹配位置超出 hl.sn-ps , 可能不会显示在结果中,我该如何配置才能确保基金匹配结果总是在结果中?
    • 好问题。也许你应该看看cwiki.apache.org/confluence/display/solr/Postings+Highlighter。它通过对“段落”进行评分(因为在这种情况下称为片段)来专注于良好的总结。但请注意,它的工作方式完全不同。
    • 谢谢,我正在研究。你能帮我解决另一个关于 solr 查询语法的问题吗? stackoverflow.com/questions/27865771/…
    • 你能告诉我你的答案在哪里解释了问题[2]如何搜索全大写AND(全大写“AND”将被视为逻辑运算符)的解决方案
    • 布尔运算符可以在 Solr 中使用“\”进行转义,参见 stackoverflow.com/questions/5890401
    猜你喜欢
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    • 2016-11-30
    • 2020-05-28
    • 1970-01-01
    相关资源
    最近更新 更多