elasticsearch - 如何在 ElasticSearch 中使用具有 _score 值的范围函数?
问题描述
我正在使用 ElasticSearch 来搜索和过滤数据。目前,我在尝试查询时得到了所有相关的搜索响应。例如-当我尝试获取 City:New York 时,我得到了所有带有单词“New”和“York”的值,而我想获取这些数据“城市:纽约”。
因此,我认为 _score 值可能对这种情况有所帮助,因此我尝试使用 range 函数获取大于或等于 20 的 _score 值。
这是我在kibana中尝试过的方式,但没有奏效。先感谢您 !!
POST /employee/_search
{
"query": {
"bool": {
"should": [
{"match": {"name": "John doe"}},
{"match": {"city": "New York"}},
{"match": {"school": "Oxford private school "}},
{"match": {"address": "Victoria Avenue"}},
{"range": {"_score" : { "gte" : 22 }}}
],
"minimum_should_match": 1
}
}
}
解决方案
我不认为_score
在这种情况下进行查询会有所帮助,因为据我所知,这_score
是由 ES 引擎计算的,因此不能保证具有确切的值。
因此,您可以使用全文搜索而不是术语搜索。因此,没有分析器适用于此文本字段。
另请参阅https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html
推荐阅读
- azure - 调整 VM 内存或磁盘大小是否会导致 VM 中安装的应用程序丢失?
- python - 如何找到任何包的 .dist-info/RECORD 文件的确切位置?
- reactjs - 测试 window.location.replace 在 React 钩子中被调用
- azure - 为什么不使用大型子网来解决 AKS Azure CNI 中的 IP 耗尽问题?
- go - 有什么方法可以访问由服务帐户创建的电子表格?
- javascript - 我用js做了setprefix,它有一个错误
- python - 有没有办法在不使用全局的情况下在不同的函数中使用相同的变量?
- c++ - 不受约束的 requires-expression 参数
- django - 按日期过滤日期时间字段在 Django 中不起作用
- javascript - 在很少见的情况下避免使用多个 if 语句