首先创建一些示例数据(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"
}
现在我的问题是:我怎样才能得到这两个数据?删除 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
}
}
}
}
}
}
这可能对您有帮助:
关于elasticsearch - 如何删除elasticsearch中的重复搜索结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29886477/