微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我将 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 == "..." 将搜索所有三个字段并在其中任何一个匹配条件时匹配文档。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?