我有一个看起来像这样的架构:
{ "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。
b1
b2
您可以使用2 terms的a字段对字段进行聚合min_doc_count,然后添加top_hits子聚合以找到匹配的b字段:
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" } } } } } }