gpt4 book ai didi

elasticsearch - 在elasticsearch 5中聚合_field_names

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

我正在尝试聚合 ES 5 中的字段名称,如 Elasticsearch aggregation on distinct keys 中所述但是那里描述的解决方案不再起作用。

我的目标是获取所有文档的 key 。映射是默认的。

数据:

PUT products/product/1
{
"param": {
"field1": "data",
"field2": "data2"
}
}

询问:
GET _search
{
"aggs": {
"params": {
"terms": {
"field": "_field_names",
"include" : "param.*",
"size": 0
}

}
}
}

我收到以下错误: Fielddata is not supported on field [_field_names] of type [_field_names]

最佳答案

环顾四周后,似乎 ES > 5.X 中获取唯一字段名称的唯一方法是通过映射端点,因为无法在 _field_names 上聚合您可能需要稍微更改数据格式,因为无论嵌套如何,映射端点都会返回每个字段。

我个人的问题是获取各种子/父文档的唯一键。

我发现您是否以 prefix.field 格式为字段名称添加前缀当点击映射端点时,它会自动为您嵌套信息。

PUT products/product/1
{
"param.field1": "data",
"param.field2": "data2",
"other.field3": "data3"
}

GET products/product/_mapping
{
"products": {
"mappings": {
"product": {
"properties": {
"other": {
"properties": {
"field3": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
},
"param": {
"properties": {
"field1": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"field2": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
}
}
}

然后,您可以根据前缀获取唯一字段。

关于elasticsearch - 在elasticsearch 5中聚合_field_names,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40846027/

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