要通过 Kibana 的 API 根据多个字段删除索引中的重复数据,您可以执行以下步骤:\n\n1. 首先,使用 Kibana 的 API 创建一个新的索引,该索引将仅包含唯一的记录。可以使用以下命令创建索引:\n\nbash\nPUT /new_index\n{\n "settings": {\n "number_of_shards": 1,\n "number_of_replicas": 0\n },\n "mappings": {\n "properties": {\n "field1": {\n "type": "keyword"\n },\n "field2": {\n "type": "keyword"\n }\n }\n }\n}\n\n\n请根据您的需求修改索引名称和字段名称。\n\n2. 然后,使用 Kibana 的 API 执行一个聚合查询,以获取所有重复的记录。可以使用以下命令执行聚合查询:\n\nbash\nPOST /your_index/_search\n{\n "size": 0,\n "aggs": {\n "duplicateRecords": {\n "terms": {\n "script": {\n "source": "doc['field1'].value + '|' + doc['field2'].value"\n },\n "min_doc_count": 2\n },\n "aggs": {\n "docs": {\n "top_hits": {\n "size": 10\n }\n }\n }\n }\n }\n}\n\n\n请将your_index替换为您要删除重复数据的索引名称,并根据您的需求修改字段名称。\n\n3. 聚合查询将返回所有重复的记录。您可以根据需要选择要删除的记录。例如,如果要删除所有重复的记录,可以使用以下命令:\n\nbash\nPOST /new_index/_delete_by_query\n{\n "query": {\n "terms": {\n "field1.keyword": ["value1", "value2", "value3", ...]\n }\n }\n}\n\n\n请将new_index替换为第一步中创建的新索引的名称,并将field1替换为您要删除的字段的名称。在terms查询中,将value1, value2, value3, ...替换为要删除的重复记录的实际值。\n\n4. 重复执行步骤3,直到所有重复的记录都被删除为止。\n\n请注意,删除操作是不可逆的,请谨慎操作,并在执行删除操作之前备份数据。


原文地址: https://www.cveoy.top/t/topic/pHQx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录