Debugging 我如何看待/调试SOLR找到它的方式';结果如何?

Debugging 我如何看待/调试SOLR找到它的方式';结果如何?,debugging,solr,lucene,Debugging,Solr,Lucene,假设我搜索“ABLS”,SOLR返回的结果对我来说毫无意义。 如何调试SOLR选择返回此记录的原因?您可以将debugQuery=true&indent=true添加到url并检查结果。您还可以在solr中使用分析工具。转到管理员并单击分析。您需要阅读wiki才能更深入地理解其中任何一项。debugQuery=true将帮助您获得详细的分数计算和每个分数的解释 可在以下位置查看评分的概览: 有关调试信息的详细解释,您可以参考QueryDBug,它会让您了解为什么您的评分看起来像这样(结束每个字段

假设我搜索“ABLS”,SOLR返回的结果对我来说毫无意义。

如何调试SOLR选择返回此记录的原因?

您可以将
debugQuery=true&indent=true
添加到url并检查结果。您还可以在solr中使用分析工具。转到管理员并单击分析。您需要阅读wiki才能更深入地理解其中任何一项。

debugQuery=true
将帮助您获得详细的分数计算和每个分数的解释

可在以下位置查看评分的概览:


有关调试信息的详细解释,您可以参考

QueryDBug,它会让您了解为什么您的评分看起来像这样(结束每个字段的相关性)。 我将得到一些您不理解的结果,并使用Solr的分析来处理这些结果 您可以在以下目录中找到它:

/admin/analysis.jsp?highlight=on

或者,在结果上打开高亮显示,查看结果中的实际匹配内容。Solr查询中充满了短参数,难以读取和修改,尤其是当参数太多时。 在这之后,调试和理解为什么一个文档比另一个文档有更多或更少的相关性变得更加困难。调试解释输出通常太大,无法放入一个页面


我发现这有助于看到Solr Query以清晰的方式解释和调试。

对于那些仍然使用非常旧的Solr 3.X版本的人,“debugQuery=true”不会放置调试信息。您应该指定“debugQuery=on”。

有两种方法。首先是查询级别,这意味着将
debugQuery=on
添加到查询中。这将包括以下几点:

  • 解析查询
  • 调试定时信息
  • 详细的评分信息,帮助您分析给文档评分的原因
除此之外,您还可以使用
[explain]
转换器并将其添加到
fl
参数中。例如,
…&fl=*,[explain]
,这将导致您的文档将评分信息作为另一个字段

评分信息可能非常广泛,包括相似性算法进行的计算。如果您想了解更多关于Solr中的相似性和评分算法的信息,请看一下我和我的同事Radu在激活会议的Sematext talk中的这篇文章:

还有像和这样的工具可以帮助解析解释信息