在Elasticsearch中搜索具有相同值的文档

我有一个看起来像这样的架构:

{

"mappings": {

"entity": {

"properties": {

"a": {

"type": "text"

},

"b": {

"type": "text"

}

}

}

我想找到b的所有值,其中b的值由2个或更多实体共享:

查询依据:

[{"a": "a1", "b": "b1"}, 

{"a": "a1", "b": "b2"},

{"a": "a2", "b": "b3"}]

应该返回b1b2

回答:

您可以使用2 termsa字段对字段进行聚合min_doc_count,然后添加top_hits子聚合以找到匹配的b字段:

{

"size": 0,

"aggs": {

"dups": {

"terms": {

"field": "a",

"min_doc_count": 2

},

"aggs": {

"b_hits": {

"top_hits": {

"_source": "b"

}

}

}

}

}

}

以上是 在Elasticsearch中搜索具有相同值的文档 的全部内容, 来源链接: utcz.com/qa/401165.html

回到顶部