
正如另一个答案所说,查看单个分片是否具有相同的结果将很有趣。我想您会并且这取决于标签字段的规范,在使用tf /
idf相似度(默认)来计算分数时会考虑到这一点。
实际上,lucene确实考虑了术语频率,换句话说,术语在字段中出现的次数(在您的情况下为1或3),以及倒置的文档频率,换句话说,术语在文档中的使用频率如何索引,以便将其与查询中的其他字词进行比较(如果您要搜索单个字词,则没有任何区别)。
但是还有另一个称为规范的因素,它奖励较短的字段并考虑到最终的索引时间增加,这可以针对每个字段(在映射中)甚至针对每个文档。您可以验证规范是您的结果启用搜索请求中的explain选项并查看explain输出的原因。
我猜,第一个文档仅包含该标签的事实使它比包含该标签的其他文档多次但也包含许多其他标签更为重要。如果您不喜欢这种行为,则可以在标签字段的映射中禁用规范。如果该字段为
"index":"analyzed"(默认),则默认情况下应启用它。
"index":"not_analyzed"如果您不希望分析标签字段(通常很有意义,但取决于您的数据和域),则可以切换到该字段,也可以
"omit_norms":true在标签字段的映射中添加选项。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)