gpt4 book ai didi

elasticsearch - 未知数据类型的Elasticsearch术语聚合

转载 作者:行者123 更新时间:2023-12-03 01:36:59 24 4
gpt4 key购买 nike

我正在使用dynamic mapping在Elasticsearch中索引未知模式的数据,即我们不知道很多数据的形状,数据类型等。在查询中,我希望能够在任何字段上进行汇总。 (通过default)将字符串映射为textkeyword类型,并且只能将后者聚合在一起。因此,对于字符串,我的terms aggregations必须如下所示:

"aggs": {
"something": {
"terms": {
"field": "something.keyword"
}
}
}

但是其他类型(例如数字和 bool(boolean) 型)没有 .keyword子字段,因此这些类型的聚合必须看起来像这样(对于文本字段,这将失败):
"aggs": {
"something": {
"terms": {
"field": "something"
}
}
}

是否有任何方法可以指定一个术语聚合,该术语聚合基本说“如果存在 something.keyword,请使用它,否则仅使用 something”,而不会显着降低性能?

对于我来说,可能需要选择在查询时提供的数据类型信息,但理想情况下,如果可能的话,我希望避免这样做。

最佳答案

如果主要用例是聚合,则可能需要更改string属性的动态映射以将其索引为keyword数据类型,并将多字段子字段索引为text数据类型,即 dynamic_templates

{
"strings": {
"match_mapping_type": "string",
"mapping": {
"type": "keyword",
"ignore_above": 256,
"fields": {
"text": {
"type": "text"
}
}
}
}
},

关于elasticsearch - 未知数据类型的Elasticsearch术语聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51678051/

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