对于Solr dismax查询,如何获得每个字段的分数



在我的应用程序中,每个文档由四个文本字段组成,即标题、关键字、摘要和文本。我知道我可以使用带有"fq=title keywords summary text"的dismax查询,让Solr在四个字段中进行dismax查询。四个字段中的最大相关性得分将用作最终得分。此外,在fl参数中添加分数,我可以获得每个文档相对于查询的相关性分数。

然而,问题是如何知道四个领域中每个领域的相关性得分?这对我来说非常重要,因为我需要丢掉这些分数来调整场地重量。我想的唯一方法是打开debugQuery选项,提取返回的XML来解析分数。但我认为这太复杂了。有人能简单地解决我的问题吗?

没有简单的解决方案,您需要添加&debugQuery=true用于查询,然后解析结果中的"explain"部分。但请注意,它也可以作为数组返回,以便于编程操作。这是通过&debug.deexplain.structured=true,这可以极大地缓解你的生活。

最新更新