gpt4 book ai didi

elasticsearch - Elasticsearch 嵌套聚合大小

转载 作者:行者123 更新时间:2023-12-03 00:08:49 25 4
gpt4 key购买 nike

我有一个嵌套的聚合,仅返回10个结果。我希望它返回1000个结果。但是,我不确定在哪里指定大小。我的映射看起来像(它在YAML中,但已处理为json,不用担心)

      mappings:
datainfo:
properties:
filterValues:
type: string
metadata:
properties:
isPrimary:
type: boolean
name:
index: not_analyzed
type: string
source:
enabled: false
type: object
type:
index: not_analyzed
type: string
val:
index: not_analyzed
type: string
type: nested
source:
enabled: false
type: object
title:
type: string

我的查询看起来像
{
"query": "<some query>",
"aggs": {
"series": {
"nested": { "path": "metadata" },
"aggs": {
"val": {
"terms": { "field": "metadata.val" },
"aggs": {
"type": {
"terms": { "field": "metadata.name" }
}
}
}
}
}
}
}

我在哪里放置“大小”字段以使此结果返回X?目前仅返回10

最佳答案

要指定查询结果的数量,可以使用size, or size with range:

{
"query": "<some query>",
"size": 1000,
"aggs": {
"series": {
"nested": { "path": "metadata" },
"aggs": {
"val": {
"terms": { "field": "metadata.val" },
"aggs": {
"type": {
"terms": { "field": "metadata.name" }
}
}
}
}
}
}

}

要指定聚合存储桶上的结果数,可以使用 Top Hits Aggregation(链接示例):
{
"aggs": {
"top-tags": {
"terms": {
"field": "tags",
"size": 3
},
"aggs": {
"top_tag_hits": {
"top_hits": {
"sort": [
{
"last_activity_date": {
"order": "desc"
}
}
],
"_source": {
"includes": [
"title"
]
},
"size" : 100
}
}
}
}
}
}

如果您只需要汇总的结果,建议的一种方法是为查询结果指定大小0,这样就消除了第一次提取,因此性能更好。

关于elasticsearch - Elasticsearch 嵌套聚合大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42538376/

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