通过多个字段进行匹配查询

时间:2016-09-15 09:01:53

标签: elasticsearch nosql

我对弹性搜索很新,想写一个关注两个字段的查询。我的意思是字段的内容包含指定的子字符串。我有一个包含字段的文档,如下所示:

name: n
tag: t

我试过了:

/_search -d '
{
    "query": {
        "match": {
             "name": "n",
             "tag": "t"
        }
    }
}

但查询会导致以下错误:

  

[match]查询以简化形式解析,带有直接字段名称,但是   包括更多选项,而不仅仅是字段名称,可能使用它   '选项'表格,带有'查询'元件?

有没有办法在elasticsearch中做到这一点?

1 个答案:

答案 0 :(得分:36)

您需要在match查询中附加两个bool/must个查询,如下所示:

{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "n"
          }
        },
        {
          "match": {
            "tag": "t"
          }
        }
      ]
    }
  }
}