6

user_idis'1'nameisのデータを照会したいと思います'John'。一般的に使用される SQL を記述するのは簡単です。

select * from t where user_id = '1' and name = 'John';

しかし、elasticsearch のクエリを作成するのは簡単ではありません。

まず、次のクエリを作成しましたuser_id

{
  "query" : {
    "match" : {
      "user_id" : "1"
    }
  }
}

そして、結果は私が期待したものでした。

次に、次のクエリを作成しましたname

{
  "query" : {
    "match" : {
      "name" : "John"
    }
  }
}

それもうまくいきました。

しかし、and 演算で 2 つの条件を結合するクエリを作成できませんでした。これら 2 つの一致クエリを 1 つに結合するにはどうすれば操作を使用できますか?

4

1 に答える 1

11

必要なのは、すべての単一クエリを入れるbool クエリです。

(クエリをテストできませんでした。間違っている可能性がありますが、ブールクエリが問題の答えです)

{
    "bool" : {
        "must" : [{
            "match" : {
                "user_id" : "1"
            },
            "match" : {
                "name" : "John"
            }
        }]
    }
}
于 2012-11-13T15:42:20.293 に答える