elasticsearch - 弹性搜索给出奇怪的结果
问题描述
我正在关注关于弹性搜索的本教程。
两名员工的“大约”价值为:
“about”:“我喜欢去攀岩”
“about”:“我喜欢收集摇滚专辑”
我运行以下查询:
GET /megacorp/employee/_search {"query":{"match":{"about":"rock coll"}}}
上述两个条目都返回,但令人惊讶的是分数相同:
“_score”:0.2876821
第二个不应该有更高的分数,因为它的'about'值包含'rock'和'coll',而第一个只包含'rock'?
解决方案
这完全取决于您使用的分析仪。如果您使用标准或英文分析仪,则此结果是正确的。我建议您花一些时间使用 elasticsearch 的分析 API,以熟悉每个分析器如何影响您的文本。
顺便说一句,如果您希望第二个文档获得更高的分数,请查看Partial matching。
推荐阅读
- javascript - 动态创建组件和模型时输入字段无法更改模型
- django - 在 scrapyd.schedule 中找不到蜘蛛
- angular - Angular 中带有 Webpack 代码拆分的异步组件
- .net - 完整的 .NET Framework 上的 ASP.NET Core 2.1
- php - 根据组合框查询新数据,并在新文本框中显示
- ruby-on-rails - Rails form_with 错误(远程:真)
- reactjs - 将具有内部状态的对象作为 React 组件中的实例属性是一种不好的做法吗?
- node.js - 如何使用添加到数据库的新主题列表重新加载/重新初始化 Kafka Consumer
- javascript - 如何从未知列数的 ajax 渲染表
- python-2.7 - 索引超出范围,仅在函数 python 内