1
レコードは{user_id, state}
の形式で存在します。ElasticSearch 2つのクエリの交差を見つけるためのクエリ
私は、両方の状態をレコードリストに持つすべてのuser_idを見つけるためにelasticsearchクエリを書く必要があります。サンプルレコードが保存されている場合たとえば
は、以下のとおりです。
{1,a}
{1,b}
{2,a}
{2,b}
{1,a}
{3,b}
{3,b}
は、この例のクエリを実行しているからの出力は、私がこれまでに試した
{"1", "2"}
次のようになります。
{
"size": 0,
"query": {
"bool": {
"filter": {
"terms": {
"state": [
"a",
"b"
]
}
}
}
},
"aggs": {
"user_id_intersection": {
"terms": {
"field": "user_id",
"min_doc_count": 2,
"size": 100
}
}
}
}
これは返されます
{"1", "2", "3"}
? – mirzak
は両方の状態のリストが前に定義されていますか?はいの場合は、状態Aと状態Bに対してANDとしてクエリを実行してから、unique修飾子を使用してuser_idのファセットをカウントします。 – Mysterion
@mirzakこれまでに試したことを示すために質問を編集しました。 – hisna