Remover documentos duplicados de uma pesquisa no Elasticsearch

Eu tenho um índice com um monte de papel com o mesmo valor para o mesmo campo. Eu tenho uma desduplicação neste campo.

Agregadores virão para mim como contadores. Eu gostaria de uma lista de documentos.

Meu índice:

  • Doc 1 {domínio: ‘domínio1.fr’, nome: ‘nome1’, data: ’01 -01-2014 ‘}
  • Doc 2 {domain: ‘domain1.fr’, nome: ‘name1’, data: ’01 -02-2014 ‘}
  • Doc 3 {domain: ‘domain2.fr’, nome: ‘name2’, data: ’01 -03-2014 ‘}
  • Doc 4 {domain: ‘domain2.fr’, nome: ‘name2’, data: ’01 -04-2014 ‘}
  • Doc 5 {domain: ‘domain3.fr’, nome: ‘name3’, data: ’01 -05-2014 ‘}
  • Doc 6 {domínio: ‘domínio3.fr’, nome: ‘nome3’, data: ’01 -06-2014 ‘}

Eu quero esse resultado (resultado de deduplicação por campo de domínio):

  • Doc 6 {domínio: ‘domínio3.fr’, nome: ‘nome3’, data: ’01 -06-2014 ‘}
  • Doc 4 {domain: ‘domain2.fr’, nome: ‘name2’, data: ’01 -04-2014 ‘}
  • Doc 2 {domain: ‘domain1.fr’, nome: ‘name1’, data: ’01 -02-2014 ‘}

Você pode usar o top_hits campo , agrupar os resultados no campo de name e definir o tamanho do agregador top_hits como 1.

 /POST http://localhost:9200/test/dedup/_search?search_type=count&pretty=true { "aggs":{ "dedup" : { "terms":{ "field": "name" }, "aggs":{ "dedup_docs":{ "top_hits":{ "size":1 } } } } } } 

isso retorna:

 { "took" : 192, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "failed" : 0 }, "hits" : { "total" : 6, "max_score" : 0.0, "hits" : [ ] }, "aggregations" : { "dedup" : { "buckets" : [ { "key" : "name1", "doc_count" : 2, "dedup_docs" : { "hits" : { "total" : 2, "max_score" : 1.0, "hits" : [ { "_index" : "test", "_type" : "dedup", "_id" : "1", "_score" : 1.0, "_source":{domain: "domain1.fr", name: "name1", date: "01-01-2014"} } ] } } }, { "key" : "name2", "doc_count" : 2, "dedup_docs" : { "hits" : { "total" : 2, "max_score" : 1.0, "hits" : [ { "_index" : "test", "_type" : "dedup", "_id" : "3", "_score" : 1.0, "_source":{domain: "domain1.fr", name: "name2", date: "01-03-2014"} } ] } } }, { "key" : "name3", "doc_count" : 2, "dedup_docs" : { "hits" : { "total" : 2, "max_score" : 1.0, "hits" : [ { "_index" : "test", "_type" : "dedup", "_id" : "5", "_score" : 1.0, "_source":{domain: "domain1.fr", name: "name3", date: "01-05-2014"} } ] } } } ] } } } 
Intereting Posts