我希望有人可以帮助我解决这个问题。呆了几天,感觉就像撞墙一样。我真的很感谢您对此主题的任何帮助。这是问题-
我正在将地址记录填充到索引中。问题是源根据地址和城市发送了大量重复数据,需要重复数据删除(不幸的是,除了这些文本字段外没有其他PK,所以我知道这不是最快的查询,但是我可以(从目前的性能方面来说)。这种重复数据删除无需实时进行,我们可以每天进行一次。大约有1600万个文档,其中大约80万个看起来像是重复的文档。这是我到目前为止所做的-
这是我正在使用的DSL查询
{
"size": 0,
"aggs": {
"addresses": {
"terms": {
"script" : {
"lang": "painless",
"source": "if ((doc['display_address.keyword'].value != null && doc['city.keyword'].value != null) && doc['record_status.keyword'].value == 'active') {return doc['display_address.keyword'].value + doc['city.keyword'].value;} else {return null;}"
},
"size": 500,
"exclude": "null"
},
"aggs": {
"my_filter": {
"bucket_selector": {
"buckets_path": {
"the_doc_count": "_count"
},
"script": "params.the_doc_count > 1"
}
},
"final_docs": {
"top_hits": {
"sort": [
{
"list_date": {
"order": "desc"
}
}
],
"_source": {
"includes": [
"_id",
"list_date",
"display_address",
"city"
]
},
"size": 100
}
}
}
}
}
}
以上查询为我提供了多个地址的不正确数据。例如,对于123 Main st,底特律只回来了6个文档。
如果我只是添加
`"include": "123 Main st"`
在我的汇总中,突然之间我看到底特律123 Main st的31个重复项