最初にいくつかのサンプルデータを作成します(e1、e2、e3はタイプで、testはインデックス名です)。
PUT test/e1/1
{
"id":1
"subject": "subject 1"
}
PUT test/e2/1
{
"id":1
"subject": "subject 2"
}
PUT test/e3/2
{
"id":2
"subject": "subject 3"
}
今私の質問は:どうすればこれらの2つのデータだけを取得できますか? curl -XGET _search
結果で同じIDの重複データを削除します。
test/e1/1
{
"id":1
"subject": "subject 1"
}
test/e3/2
{
"id":2
"subject": "subject 3"
}
まず、複数のインデックスを検索する必要があります。
次に、結果で重複するIDを削除します。
POST http://myElastic.com/test/e1,e2,e3/_search
{
"aggs":{
"dedup" : {
"terms":{
"field": "id"
},
"aggs":{
"dedup_docs":{
"top_hits":{
"size":1
}
}
}
}
}
}
これはあなたを助けるかもしれません: