[英]how to use indexes in arangodb graph search?
我正在為我的應用程序評估ArangoDb。 我有一個像文件系統這樣的數據模型,帶有一個Items文檔集合和一個帶有有關Items的父子關系的ItemsParents邊緣集合。
現在,我想查找具有特定屬性的特定項目的所有子項
例如:屬性為Properties.Age.Value = 20的A的所有子元素
所以我在Items.Properties.Age.Value上創建了一個哈希索引,並設計了這個AQL查詢:
FOR item
IN GRAPH_NEIGHBORS('ItemsGraph', 'Items/A',
{ direction : 'outbound',
includeData: true,
neighborExamples : { 'Properties.Age.Value': 20 }
})
RETURN { Id: item._key, Name: item.Name }
上面的查詢工作良好,但是沒有使用索引,因此它對Items集合執行完整掃描以測試Properties.Age.Value篩選器。
如何設計查詢,以便使用索引有效地執行性能並避免進行集合掃描?
謝謝
當前,ArangoDB只能在圖形操作中使用邊索引;
不使用GRAPH_NEIGHBOURS可能會使用索引,但是您必須自己過濾鄰居。
可以提供這種索引支持的以頂點為中心的索引可能會出現在接下來的兩個ArangoDB版本之一中。
[edit]同時,使用較新的ArangoDB版本可以做到這一點。
GRAPH_NEIGHBOURS已集成到遍歷引擎中 。 現在,您將在Age
和_from
上創建組合索引。 您應該使用db._explain()
檢查索引的用法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.