使用not_analyzed字段和ES的'term query'仍然返回分数的原因是因为ES在处理查询时会使用相关性算法来计算分数。尽管not_analyzed字段可以确保精确匹配,但仍然会使用默认的相关性算法来计算分数。
相关性算法是ES用来确定查询结果的重要性和相关性的一种方法。即使使用精确匹配的term查询,ES仍然会考虑词项的频率、倒排文档频率和字段长度等因素来计算分数。这意味着即使查询是精确匹配的,仍然可能会返回一个非零的分数。
解决这个问题的方法是使用过滤器查询(filter query)而不是term查询。过滤器查询不计算分数,只返回精确匹配的结果。通过将查询类型从term查询更改为过滤器查询,可以避免返回非零分数的情况。
以下是腾讯云相关产品和产品介绍链接地址,供参考:
请注意,以上只是对问答内容的参考答案,具体解决方案可能需要根据实际情况进行调整。
领取专属 10元无门槛券
手把手带您无忧上云