当前位置: 首页 > 面试题库 >

如何在elasticsearch中删除重复的搜索结果?

严阳成
2023-03-14
问题内容

首先创建一些示例数据(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"
}

现在我的问题是:我怎样才能仅获得这两个数据?删除结果中具有相同ID的重复数据curl -XGET _search

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
           }
         }
       }    
    }
  }
}


 类似资料:
  • 问题内容: 我有一个索引,其中很多纸在同一字段中具有相同的值。在这一领域,我有一个重复数据删除技术。 聚合器将作为计数器来找我。我想要一份文件清单。 我的索引: Doc 1 {domain:’domain1.fr’,name:’name1’,date:‘01 -01-2014’} Doc 2 {domain:’domain1.fr’,name:’name1’,date:‘01 -02-2014’}

  • 问题内容: 我有一个包含多个重复条目的索引。它们具有不同的ID,但其他字段具有相同的内容。 例如: 删除重复项后: 有没有一种方法可以删除所有重复项并仅保留一个不同的条目,而无需手动比较所有条目? 问题答案: 我使用rails,如有必要,我将使用命令导入内容,该命令将删除并重新索引该索引和类型的所有内容……但是不确定您在哪个环境中运行ES。我只能看到的问题是数据源是否您正在从中导入(即数据库)的记

  • 我正在处理一个Path方法,它返回从给定节点到具有给定值键的节点的路径。我的代码返回正确的数字,但它们在括号内。我如何拆下支架? 实际输出为: 但它应该是:

  • 我试图为我的PHP站点提供一个搜索功能。用户应该能够搜索他们想要的查询的行和列,如“搜索引擎”。我尝试了以下php代码: 一切正常,但我得到了重复的结果。我读了很多答案,到目前为止我做了以下工作:我使用了和但没有返回任何结果。我尝试分组,但他们没有删除重复的,什么也没有返回。我还在where条件中对应用了PHP array_unique(),但它也没有返回任何结果。如果我可以做到这一点,只使用SQ

  • 问题内容: 我的许多日志都以logstash-Year- Week格式编制索引。那就是如果我想删除超过几周的索引,如何在elasticsearch中实现。有没有简单,无缝的方法可以做到这一点? 问题答案: 策展人将是这里的理想之选。您可以在这里找到链接-https: //github.com/elastic/curator 如下所示的命令应该可以正常工作- 您可以将其保留在CRON中,以偶尔删除索

  • 问题内容: 我每天创建索引来存储搜索历史,并且我将这些索引用于应用程序中的建议,这也有助于我根据历史建议。 现在我只需要维持过去的10天历史。那么elasticsearch中是否有任何功能可以让我定期创建和删除索引? 问题答案: 我唯一能想到的就是使用数据数学:https : //www.elastic.co/guide/en/elasticsearch/reference/current/dat