设置参数 `node.name` 可以自定义 Elasticsearch 节点的名字。 此条 Tips 由 medcl 贡献。

ElasticSearch搜索可以自定义去重吗?

Elasticsearch | 作者 ventus | 发布于2015年12月21日 | 阅读数:26308

搜索的时候根据条件去重(返回重复数据的任意一条)
比如下面的两条数据
{
 "title":"test1",
 "content":"hello world!"
}
{
 "title":"test1",
 "content":"The world is beautiful"
}
搜索条件:
"query": {
    "match": {
      "content": "world"
    }
  }
重复判定条件:title相同视为重复(每次搜索重复判定条件可能变化)
返回结果要求:只返回其中任意一条记录(搜索匹配了两条记录,但两条记录title相同,所以要求只返回其一一条记录)
请问各位大神ElasticSearch自身支持这样的功能吗?如果自身不支持,有没有其他实现该功能的思路?
 
已邀请:

wzdxt

赞同来自: ventus

使用terms聚合可以解决去重的问题 然后嵌套使用top hits聚合在每个分组中得到一个文档

medcl - 今晚打老虎。

赞同来自: laoyang360

我猜你要找的是这个http://elasticsearch.cn/article/132

wntp - 80后IT♂

赞同来自:

是不是可以通过分组查询 获得自己想要的结果

phantom - you know, for search

赞同来自:

"facets": {
    "titleFacet": {
      "terms": {
        "field": "title"
      }
    }
}
 
使用切面看看能不能解决问题呢

nate

赞同来自:

用aggregation​
	"aggs": {
"distinct_title": {
"terms": {
"field": "title",
"size": 0
}
}
}

要回复问题请先登录注册