如何查看 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 查询未返回的文档的解释的主要内容,如果未能解决你的问题,请参考以下文章