在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"}]
应该返回b1
和b2
。
回答:
您可以使用2 terms
的a
字段对字段进行聚合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