gpt4 book ai didi

json - 嵌套结构的 Elasticsearch 映射

转载 作者:行者123 更新时间:2023-12-03 01:53:28 25 4
gpt4 key购买 nike

我正在寻找一些关于映射某种动态结构以供 Elasticsearch 使用的指针。

原始结构本身是 json,但问题是结构的一部分包含一个变量,而不是结构的外部元素是静态的。

为了提供一个有点编辑的例子,我的 json 看起来像这样:

"stat": {
"state": "valid",
"duration": 5,
},
"12345-abc": {
"content_length": 5,
"version": 2
}
"54321-xyz": {
"content_length": 2,
"version", 1
}

第一个 block 很容易; Elasticsearch 在映射结构的“stat”部分方面做得很好,如果我将大量数据转储到索引中,它会按预期工作。问题是接下来的 2 个 block 本质上是一样的,但是原始 json 的格式是这样的,一个独特的元素已经潜入结构中,而 Elasticsearch 希望在默认情况下映射它,生成一个看起来像这样的映射:
"stat": {
"properties": {
"state": {
"type": "string"
},
"duration": {
"type": "double"
}
}
},
"12345-abc": {
"properties": {
"content_length": {
"type": "double"
},
"version": {
"type": "double"
}
}
},
"54321-xyz": {
"properties": {
"content_length": {
"type": "double"
},
"version": {
"type": "double"
}
}
}

我希望能够索引所有“content_length”数据,但它正在分离,并且使用了一些变量名,当我将数据放入 Kibana 时,我最终会得到非常长的字段名,这些字段名几乎没有用.

是否可以为结构提供通用标签?还是在 json 生成阶段更简单地解决这个问题,我们的开发人员硬编码通用结构名称并添加标识符字段名称。

非常感谢任何见解/帮助。

谢谢!

最佳答案

如果这些键像 12345-abc生成并且可能是无限的值,将很难(如果不是不可能的话)进行一些有用的查询或聚合。目前还不清楚您有哪些确切的用例来分析您的数据,但您可能应该看看 nested objects ( https://www.elastic.co/guide/en/elasticsearch/guide/current/nested-objects.html ) 并根据您要查询的内容生成输入 json。如果您将这些附加对象放入一个包含当前键的特殊字段的数组中,您似乎将获得更好的聚合结果。

{
"stat": ...,
"things": [
{
"thingkey": "12345-abc",
"content_length": 5,
"version": 2
},
...
]
}

关于json - 嵌套结构的 Elasticsearch 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38467490/

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