ElasticSearch术语聚合后如何返回每个桶的所有文档?

2024-02-20

我使用以下简单查询来搜索弹性索引中的文档:

{
    "query": { "query_string": { "query": "*test*" } },
    "aggregations": {
        "myaggregation": {
            "terms": { "field": "myField.raw", "size": 0 }
        }
    }
}

这将返回每个不同值的文档数myField.raw.

既然我感兴趣all实际文件数量比总数多,我尝试添加以下内容top_hits子聚合:

{
    "query": { "query_string": { "query": "*test*" } },
    "aggregations": {
        "myaggregation": {
            "terms": { "field": "myField.raw", "size": 0 },
            "aggregations": {
                "hits": {
                    "top_hits": { "size": 2000000 }
                }
            }
        }
    }
}

这种丑陋的用法top_hits可以工作,但是速度很慢。

执行完之后是否有任何正确的方法来获取每个存储桶的实际文档term聚合?


您是否考虑过使用collapse on field?

它返回分组在inner_hits下的文档(hits.hits[].inner_hits.<collapse-group-name>.hits.hits[]._source)

Refer - https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search-request-collapse.html https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search-request-collapse.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ElasticSearch术语聚合后如何返回每个桶的所有文档? 的相关文章

随机推荐