gpt4 book ai didi

elasticsearch - ElasticSearch在删除空格和特殊字符后查找所有重复项

转载 作者:行者123 更新时间:2023-12-03 01:36:59 24 4
gpt4 key购买 nike

我们的 Elasticsearch 集群中大约有100,000个文档。我试图找到一个查询,以便我们可以根据某些字段找出重复的文档。
我可以运行此查询:

{
"size": 0,
"aggs": {
"duplicateCount": {
"terms": {
"field": "name",
"min_doc_count": 2
},
"aggs": {
"duplicateDocuments": {
"top_hits": {}
}
}
}
}

但是我们的某些文件具有相似的值(value)。例如,两个不同的文档具有名称:“pawan”和名称:“paw-an”,我们希望将它们视为同一文档。我找不到任何说出replaceAll的方法,然后运行此查询。有什么办法吗?我们使用的是ElasticSearch 1.5,因此对于此类功能而言可能太旧了。谢谢。

对应:
{
  "mappings":{
            "employeeinfo":{
                        "_all" : {"enabled" : true},
                        "properties":{
                                    "name":{
                                              “type":"string"
                                    },
                                    "age":{
                                                "type":"long"
                                    }
                        }
            }
 }
}

问候,
wan

最佳答案

可以使用script in your terms aggregation代替字段名:

{
"size": 0,
"aggs": {
"duplicateCount": {
"terms": {
"script": "_source.name.replaceAll('-', '')",
"min_doc_count": 2
},
"aggs": {
"duplicateDocuments": {
"top_hits": {}
}
}
}
}

关于elasticsearch - ElasticSearch在删除空格和特殊字符后查找所有重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51664334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com