web-dev-qa-db-ja.com

複数のフィールドで一致するクエリ

エラスティック検索は初めてなので、2つのフィールドに関係するクエリを作成したいと思います。つまり、フィールドの内容には指定されたサブストリングが含まれます。次のようなフィールドを含むドキュメントがあります:

name: n
tag: t

私はこれを試しました:

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

ただし、クエリの結果は次のエラーになります。

[match]クエリは、直接フィールド名を使用して単純化された形式で解析されますが、フィールド名以外のオプションが含まれています。

Elasticsearchでこれを行う方法はありますか?

20
user3663882

次のように、bool/mustクエリに囲まれた2つのmatchクエリが必要です。

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