如何查看 Solr 对 Solr 查询未返回的文档的解释

Posted

技术标签:

【中文标题】如何查看 Solr 对 Solr 查询未返回的文档的解释【英文标题】:How to see Solr explain for a document not returned by Solr query 【发布时间】:2020-09-26 14:37:11 【问题描述】:

我正在使用 Solr 的解释来调试我的 Solr 查询。我可以看到 Solr 查询返回的所有内容的解释结果,但不能看到查询未返回的文档。

有些文档我认为应该由查询返回,但不是。 我想看看如何计算这些文档的 Solr 分数,以便能够与其他文档进行比较。

【问题讨论】:

您可以在分析页面上检查与这些字段匹配的术语...转到 solr 管理页面 ...选择核心/集合并单击分析页面...选择字段并检查索引和查询 分析页面显示的是字段在索引和查询过程中是如何处理的,而不是解释的结果和最终分数是如何计算的。 只需将“debug=true”参数添加到您的查询中,您就可以看到整个解释 @AbhijitBashetti 看来你没有仔细阅读这个问题。我已经在使用解释了。 score 不决定是否返回文档。唯一影响文档是否被返回的是正在应用的过滤器,通过查询q 或通过过滤器查询fq。您可以通过上述分析页面进行调试。 【参考方案1】:

我能够找到这个问题的答案。 有一个名为explainOther 的查询参数。您可以在此参数中指定一个查询,并在您将获得的匹配查询的解释之上,现在 Solr 将向您显示与此新的 explainOther 查询匹配的任何记录的解释。

这是 Solr 参考指南中对该参数的解释:

解释其他参数

(来自:https://lucene.apache.org/solr/guide/6_6/common-query-parameters.html#CommonQueryParameters-TheexplainOtherParameter)

explainOther 参数指定 Lucene 查询以识别一组文档。如果包含此参数并设置为非空值,则查询将返回调试信息,以及与 Lucene 查询匹配的每个文档的“解释信息”,相对于主查询(由 q范围)。例如:

q=supervillians&debugQuery=on&explainOther=id:juggernaut 上面的查询允许您检查最匹配文档的评分说明信息,将其与匹配 id:juggernaut 的文档的说明信息进行比较,并确定为什么排名不符合您的预期。

该参数默认为空,不会返回额外的“解释信息”。

【讨论】:

以上是关于如何查看 Solr 对 Solr 查询未返回的文档的解释的主要内容,如果未能解决你的问题,请参考以下文章

solr索引删除后索引文档数量未变

solr 可以返回函数值(不是 solr 分数或文档字段)吗?

检索 Solr 查询中的特定字段?

检索Solr查询中的特定字段?

如何在 solr 查询中排序之前按分数限制

Solr查询以。开头