我正在为客户做概念证明,我目前正在运行一些简单的查询来帮助进行概念证明。
我正在做一个非常简单的布尔查询,该查询将为所有文档产生相同的分数,因为它只是在一个字段上,但是给出了不同的评分。
查询在下面
var response = client.Search<TblRace>(s => s
.Query(q => q
.Bool(b => b
.Must(
m => m.Term(t => t.Field(f => f.Handicap).Value(true)))
)
)
.Take(300)
.Explain()
);
我知道建议是,如果您希望以这种方式使用计分器来保持一致的评分,但这只是我检查评分方式的一种简单方法。
我最终的概念证明实际上将查看“障碍”字段,如果该字段为true,则对其进行增强,但如果为false,则仍将其包括在内。
我最终将拥有大量的字段,这些字段将以此方式基于大量的布尔输入来生成排名系统,如果它与用户的首选项相匹配,则将被提升,但如果不匹配,则仍将包含结果。 / p>
问题是:为什么我的得分不一致?我试图检查解释的结果,但对我而言,它们对我来说毫无意义。
答案 0 :(得分:0)
我发现这与分片有关。
索引存储在多个分片中,它们负责自己的评分。
很可能我上传的小数据集(200条记录)不足以产生一致的分数。
3个可能的答案是: