elasticsearch - 匹配多个值的字段

标签 elasticsearch

我想获取所有与单词匹配的文档:“水果”字段中的“苹果”,“橘子”和“菠萝”。所以基本上我想要这样的东西:

{
  "query":{
    "bool":{
      "must": [
        {
          "match": {
            "fruits": ["Apples","Oranges","Pineapples"]
          }
        }
      ]
    }
  }
}

我该如何通过一个简单的技巧来完成此任务?

最佳答案

您可以使用“条款”代替“匹配”来获取文档

{
   "query": {
      "terms": {
         "fruits": [
            "apples",
            "oranges",
            "pineapples"
         ]
      }
   }
}

注意:您应该小写值,因为“术语”查询会找到完全匹配的内容,并且如果未使用分析器,elasticsearch将使用默认分析器(标准分析器)在索引文本值时将文本值小写,然后再对其进行索引

关于elasticsearch - 匹配多个值的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45023039/

相关文章:

elasticsearch - ElasticSearch返回条件

java - 为什么elasticsearch慢查询中take_millis和timeout之间有很多时间开销

node.js - Elasticsearch 客户端 http 流量错误,正在关闭连接

elasticsearch - 弹性 2.3.4。节点启动安静失败

angularjs - 跨域请求阻止的Elasticsearch

python - 是否可以使用实时信号自动更新干草堆弹性中的多个索引

elasticsearch - 无法在elasticsearch Shield中添加管理员[错误]:找不到或加载主类org.elasticsearch.shield.authc.esusers.tool.ESUsersTool

elasticsearch - Grok模式-用于逗号分隔的数据

Elasticsearch 聚合和过滤器

elasticsearch - 打破英语复合词?