- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已按以下格式将数据存储在 arangoDB 2.7 中:
{"content": "Book.xml", "type": "string", "name": "name", "key": 102}
{"content": "D:/XMLexample/Book.xml", "type": "string", "name": "location", "key": 102}
{"content": "xml", "type": "string", "name": "mime-type", "key": 102}
{"content": 4130, "type": "string", "name": "size", "key": 102}
{"content": "Sun Aug 25 07:53:32 2013", "type": "string", "name": "created_date", "key": 102}
{"content": "Wed Jan 23 09:14:07 2013", "type": "string", "name": "modified_date", "key": 102}
{"content": "catalog", "type": "tag", "name": "root", "key": 102}
{"content": "book", "type": "string", "name": "tag", "key": 103}
{"content": "bk101", "type": {"py/type": "__builtin__.str"}, "name": "id", "key": 103}
{"content": "Gambardella, Matthew", "type": {"py/type": "__builtin__.str"}, "name": "author", "key": 1031}
{"content": "XML Developer's Guide", "type": {"py/type": "__builtin__.str"}, "name": "title", "key": 1031}
{"content": "Computer", "type": {"py/type": "__builtin__.str"}, "name": "genre", "key": 1031}
{"content": "44.95", "type": {"py/type": "__builtin__.str"}, "name": "price", "key": 1031}
{"content": "2000-10-01", "type": {"py/type": "__builtin__.str"}, "name": "publish_date", "key": 1031}
{"content": "An in-depth look at creating applications with XML.", "type": {"py/type": "__builtin__.str"}, "name": "description", "key": 1031}
如将文档数量增加为 1000、10000、100000、1000000、10000000 等。平均查询响应时间随着文档数量的增加而增加,从 0.2 秒到 3.0 秒不等。我已经在这个集合上创建了哈希索引。我的问题是我们是否可以通过增加文档数量来减少这个问题。
另一方面,我还在内容组件上创建了全文索引,全文搜索中也会发生同样的情况,响应时间从 0.05 秒到 0.3 秒不等。
所以告诉我有什么办法可以进一步减少这个时间..
请告诉我我们可以进一步缩短响应时间吗?
最佳答案
不能在第一级嵌套 FOR
语句中使用索引。但是,从 ArangoDB 2.8 开始,您可以使用 array indices :
您查询的值是 data.pname[*].name
和 data.pname[*].type
,因此让我们为它们创建索引:
db.DSP.ensureIndex({type:"hash", fields: ['data[*].type']});
db.DSP.ensureIndex({type:"hash", fields: ['data[*].name']});
现在让我们重新制定查询,以便它可以利用该索引。我们从一个简单的版本开始进行实验,并使用解释来重新验证它实际上使用了索引:
db._explain('FOR k IN DSP FILTER "modified_date" IN k.data[*].name RETURN k')
Query string:
FOR k IN DSP FILTER "modified_date" IN k.data[*].name RETURN k
Execution plan:
Id NodeType Est. Comment
1 SingletonNode 1 * ROOT
6 IndexNode 1 - FOR k IN DSP /* hash index scan */
5 ReturnNode 1 - RETURN k
Indexes used:
By Type Collection Unique Sparse Selectivity Fields Ranges
6 hash DSP false false 100.00 % [ `data[*].name` ]
("modified_date" in k.`data`[*].`name`)
因此我们看到我们可以对数组条件进行过滤,这样您就只能将要检查的文档放入内部循环中:
FOR k IN DSP FILTER "modified_date" IN k.data[*].name || "string" IN k.data[*].type
FOR p IN k.data FILTER p.name == "modified_date" || p.type == "string" RETURN p
关于python - 如何通过增加单个集合中的文档数量来提高 ArangoDB 2.7 中的检索查询性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35274525/
我无法停止 arangodb docker 容器中的 arangodb 服务器。 当我执行低于一个时, $/etc/init.d/arangod 停止 $service arangodb 状态 ara
我在 java 中查询 ArangoDB 以获取数组值时遇到问题。我尝试过使用 String[] 和 ArrayList,都没有成功。 我的查询: FOR document IN documents
我想计算 ArangoDB 的服务器要求。 我知道 ArangoDB 将索引存储在 RAM 中,但是索引使用了多少空间? 最佳答案 这取决于您使用的索引类型。 您可以使用“数字”来查看需要多少内存:
我是 Arango DB 的新用户,目前正在为我的项目评估它。有人可以告诉我,您可以在 Arango DB 中创建的最大数据库数量是多少吗? 谢谢。 最佳答案 据我所知,ArangoDB 中的数据库数
我尝试从我的电脑连接到位于另一台服务器上的 ArangoDB,但似乎不成功。然后,我尝试使用输入服务器 ip http://x.x.x.x:8529 提供的 Web UI 来访问它。但也失败了。我在本
我有一个这样的文件: { "baths": 2, "beds": 3, "id": "3225C", "addrs": [ { "line2": "",
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
检索相关edge_collection中没有边的所有顶点的最佳方法是什么 我尝试使用以下代码,但自 arangodb 2.8 以来,它变得非常慢(在以前的版本中并不是很快,但比现在快了大约 10 倍)
我有许多节点通过其他类型的中间节点连接。如图所示,中间节点可以有多个。我需要找到给定数量的节点的所有中间节点,并按初始节点之间的链接数量对其进行排序。在我的示例中,给定 A、B、C、D,它应该返回节点
我有一个存储在 arangodb 中的对象,该对象具有其他内部对象,我当前的用例要求我仅更新其中一个元素。 存储对象 { "status": "Active", "physicalCode":
我正在尝试与 Arango 组合一个单元测试设置。为此,我需要能够在每次测试时重置测试数据库。 我知道我们可以直接从 REST API 删除数据库,但文档中提到创建和删除可能“需要一段时间”。 这是否
我有某种类型的事件列表,其结构如下: { createdAt: 123123132, type: STARTED, metadata: { emailAddress: "foo@bar
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 3 年前。
我发现使用 Web UI 在 arangodb 上创建新用户时遇到了麻烦。首先,我可以创建一个新用户,但无法为该用户分配一个数据库。另外,你能帮忙提供一个使用 arangodb Shell 的方法吗?
我在本地运行 ArangoDB,其中包含来自多个不同项目的数据库、集合、数据和图表。我想备份所有内容,以便重建我的系统。我知道如何备份单个数据库,但因为我有很多数据库,所以我希望一次性完成。 本质上,
应该很容易操作,但我找不到如何实现这一点。我有两个来自不同集合的文档,现在我想使用现有集合中的新 Edge 链接它们。我正在尝试像这样使用 edge-collection.save 函数:edge-c
在我解决 1000 个客户端的任务中,每个客户端都有单独的 ArangoDB,在运行时记录单独的信息......我们需要将这些信息聚合回单个主节点服务器中的集合,以便可以进行查询和报告在上面。研究 J
具有以下结构的文档: { path: String, enabled: Long, disabled: null || Long, // other fields... } 我想通过路
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 3 年前。
我想从 ArangoDB 的文档中删除一个属性。 我认为正确的方法是使用函数 UNSET(doc, attributeName1, ..., attributeNameN) .然而,仅凭这一点,数据库
我是一名优秀的程序员,十分优秀!