【问题标题】:Solr edismax. How to retrieve the fields that gave the query resultSolr edismax。如何检索给出查询结果的字段
【发布时间】:2014-01-21 11:12:19
【问题描述】:

我正在使用 qf 参数查询多个字段。但我想知道如何检索给出结果的字段。

示例(非真实示例):

      q={!edismax qf='tag content'}("tablet")AND("pc")

字段值:

      doc1:
           tag: tablet
           content: The test has failled. Use a pc instead.
      doc2:
           tag: tablet pc
           content: The test has worked.

结果这两个文档都将被返回,因为它们的标签/内容中都有平板电脑和个人电脑。 是否有可能知道 doc2 在标记中都有命中,而 doc1 在标记中只有 1 次命中,在内容中只有 1 次命中? Debugquery 似乎没有提供这方面的信息。

我知道我可以使用 qf 提升来提高搜索字段的重要性。

【问题讨论】:

  • 这样做的目的是什么?如果您可以让我们知道您要如何处理此类结果,将会有所帮助。
  • 让用户知道结果是从文件内容还是从用户添加的标签中找到的。

标签: solr edismax


【解决方案1】:

你可以:

  1. 使用Highlighting
  2. 使用 debugQuery=true 请求调试信息并解析评分信息以找出答案。

我认为 1 更容易,但它对您的字段施加了一些限制(例如,它们必须被存储)

【讨论】:

【解决方案2】:

好的,根据您对我的问题的回答。

不幸的是,Solr 目前无法返回与查询匹配的字段作为默认结果文档的一部分。如果查询很简单,那么循环返回的存储字段可能是您最好的选择。突出显示也是一种选择。

这里建议了其他几个选项:http://grokbase.com/t/lucene/solr-user/117nkf36nq/determine-which-field-term-was-found

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 2015-11-04
    • 1970-01-01
    • 2012-06-24
    • 2021-03-28
    • 2020-03-21
    • 2010-09-20
    相关资源
    最近更新 更多