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

对于Solr Demax查询,如何获得每个字段的分数?,solr,field,dismax,Solr,Field,Dismax,在我的应用程序中,每个文档由四个文本字段组成,即标题、关键字、摘要和文本。我知道我可以使用带有“fq=title keywords summary text”的Demax查询,让Solr在四个字段中执行Demax查询。四个字段中的最大相关性得分将用作最终得分。此外,将分数添加到fl参数中,我可以根据查询获得每个文档的相关性分数 然而,问题是如何知道这四个字段的相关性得分?这对我来说非常重要,因为我需要抛开这些分数来调整场地权重。我考虑的唯一方法是打开debugQuery选项并提取返回的XML以解

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


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

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

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