gpt4 book ai didi

Elasticsearch:聚合查询结果

转载 作者:行者123 更新时间:2023-12-02 22:13:38 25 4
gpt4 key购买 nike

我有一个包含产品的 elasticsearch 索引,我可以查询不同的搜索词。每个产品都包含一个字段 shop_id 以引用它所属的商店。现在我尝试显示所有持有我查询产品的商店的列表。 (按店铺筛选)据我阅读类似的问题,我必须使用聚合。最后我构建了这个查询:

curl -XGET 'http://localhost:9200/searchindex/_search?search_type=count&pretty=true' -d '{
"query" : {
"match" : {
"_all" : "playstation"
}
},
"aggregations": {
"shops_count": {
"terms": {
"field": "shop_id"
}
}
}
}'

这应该搜索 playstation 并根据 shop_id 聚合结果。可悲的是它只返回

Data too large, data would be larger than limit of [8534150348] bytes].

我也尝试过只返回 2 个结果的查询。该索引包含超过 90,000,000 种产品。

最佳答案

我建议这就是过滤器聚合的工作。

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filter-aggregation.html

注意:我不知道您的产品在您的索引中的映射,因此如果下面的过滤器不起作用,请尝试来自 http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-filters.html 的另一个过滤器

{
"aggs" : {
"in_stock_playstation" : {
"filter" : { "term" : { "change_me_to_field_for_product" : "playstation" } } },
"aggs" : {
"shop_count" : { "terms" : { "field" : "shop_id" } }
}
}
}
}

关于Elasticsearch:聚合查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25554563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com