首页 > 解决方案 > 弹性搜索给出奇怪的结果

问题描述

我正在关注关于弹性搜索的本教程。

两名员工的“大约”价值为:

“about”:“我喜欢去攀岩”

“about”:“我喜欢收集摇滚专辑”

我运行以下查询:

GET /megacorp/employee/_search {"query":{"match":{"about":"rock coll"}}}

上述两个条目都返回,但令人惊讶的是分数相同:

“_score”:0.2876821

第二个不应该有更高的分数,因为它的'about'值包含'rock'和'coll',而第一个只包含'rock'?

标签: elasticsearch

解决方案


这完全取决于您使用的分析仪。如果您使用标准或英文分析仪,则此结果是正确的。我建议您花一些时间使用 elasticsearch 的分析 API,以熟悉每个分析器如何影响您的文本。

顺便说一句,如果您希望第二个文档获得更高的分数,请查看Partial matching


推荐阅读