0

我正在使用 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 boost 来增加搜索字段的重要性。

4

2 回答 2

1

您可以:

  1. 使用突出显示
  2. 使用 debugQuery=true 询问调试信息并解析评分信息以找出答案。

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

于 2014-01-21T11:41:03.090 回答
0

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

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

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

于 2014-01-21T13:23:06.903 回答