繁体   English   中英

使用 arango 搜索在集合中查找 JSON 键并清理数据

[英]Using arango search to find JSON keys in a collection and clean data

我将 arangoDB 用于一个项目,其中 JSON 对象具有可变结构。 我在想我可以创建一个视图来搜索集合并提取相关的键。 似乎所有文档都假设您知道感兴趣的领域在哪里,但我不知道。 例如,我想创建一个带有 'foo' 字段的视图,但我不知道它可能在许多嵌套对象中的哪个位置。 我的 JSON 文件/集合可能如下:

[{'foo':'bar'},
 {'nest':
       {'nesty':
           {'foo':bar}
       }
 },
 {arr:[{'blah':'blah'},{'foo':'blah'}]}, ect ]

我知道亚行有一个文本搜索引擎,但它似乎只有在数据干净的情况下才有用。 理想情况下,我想要一种实际搜索文档本身以制作视图的方法。 有太多的数据和变化让我无法对每条路径进行硬编码,但关键字符串“Foo”始终是一致的。 理想情况下,我希望该视图包含以下文档:

[{'foo':bar},{'foo':bar},{'foo':blah},etc]

所以我的问题是 1,有没有办法在 arango 中执行此类数据清理,2 如果不是,处理此类数据的主要范式是什么? 我应该尝试在 arango 之外清理它吗?

视图允许您通过在链接的顶级(集合键)设置"includeAllFields": true来索引所有字段。 但是,您需要在查询时指定属性路径,例如SEARCH doc.nest.nesty.foo == "bar" 不支持搜索任意路径,如SEARCH doc.* == "bar"

目前也没有办法自动展平您的数据。 如果您的数据具有固定的嵌套结构,那么您可以运行一次性 AQL 查询来执行此操作,但如果我理解正确,那么数据并非如此。 您仍然可以在客户端执行此操作,或者编写一个用户定义的 AQL 函数来在服务器端执行此操作。

{ "data": [{"foo":"bar"},{"foo":"bar"},{"foo":"blah"}]这样的扁平化文档可以像单个属性一样被索引. SEARCH doc.data.foo == "..."将搜索所有三个字段并匹配文档,如果其中任何一个与条件匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM