gpt4 book ai didi

elasticsearch - 如何禁用要在 ElasticSearch 中编制索引的属性

转载 作者:行者123 更新时间:2023-11-29 02:52:01 25 4
gpt4 key购买 nike

我正在使用默认机制(不传递任何模式/结构)为数据编制索引。我只是 XPOST JSON 文档。

我想使用:

  • 一个索引
  • 各种类型,但与数据本身无关

我遇到的问题是我的 JSON 文档有一个特定的属性,该属性有时会递归地嵌套自身。当它发生时,ElasticSearch 在数据索引 PUT 操作上出错。

此类属性的内容对我的搜索/索引目的并不重要。我知道我可以将它从数据中排除,但我仍然希望它像 NoSQL 解决方案一样存储。

例子:

{ prop1:“某物”, dirty_prop : { someprop : 123 , dirty_prop : { .... } }

从上面可以看出,有一个嵌套的包含,会失败。

问题是:如何避免错误,保存数据。我假设从索引中删除dirty_prop 将允许它通过。排除它的最简单方法是什么,而不必提供完整的结构(我无法提供完整的结构/模式,因为我在数据中获得了新属性)。

最佳答案

我想说拥有这样的 JSON 可能不是一个好主意,但如果你确实拥有它并且无法做任何事情来修复它,你可以看看 enabled 可用于映射中 object 类型字段的属性。看看here了解更多。如果你说 enabled: false json 的分支将不会被解析或索引,而是保留在 _source 中。字段随心所欲。

另一方面,我不是 100% 确定这会起作用,具体取决于您的 json 的损坏程度。当然,json 解析器(使用 pull 方法)需要能够识别下一个对象并继续解析 json 的其他字段。

您提供完整的 json 结构这一事实使事情稍微复杂一些。您可以使用 dynamic templates指定一个模式来标识所有需要忽略的对象及其映射,指定 enabled: false

关于elasticsearch - 如何禁用要在 ElasticSearch 中编制索引的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17736755/

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