如何使用aql,blueprints和http接口在arangodb图中进行全文查询?

时间:2014-06-26 12:38:31

标签: arangodb aql

说,我有属性的顶点" text"和此属性的全文索引。

在arango 2.1.2 shell中,我可以用

查询顶点
g._vertices.fulltext("text","my text value")

db.v.fulltext("text","my text value")

但如果我使用blueprints-arangodb-graph-1.0.8,那么蓝图实现的请求就像

http://{arangodb}/_db/testdb/_api/graph/test_graph/vertices

身体:

{"batchSize":1,"count":false,"filter":{"properties":[{"key":"text","value":"my text value":"=="}]}}

这非常低效,因为它遍历每个顶点。

那么,是否可以在

中高效地进行查询
  • AQL
  • 蓝图
  • 和http接口?

非常感谢。

更新 我通过HTTP找到了简单的全文查询

http://{arangodb}/_db/testdb/_api/simple/fulltext

和身体:

{ "collection": "test_vertices", "attribute" : "text", "query" : "my text value" }

UPDATE-2 我找到了AQL:

FOR v in FULLTEXT(test_vertices, 'text', 'my text value') RETURN v

1 个答案:

答案 0 :(得分:2)

让我们说你的收藏被称为" vertices"你的属性是"文字"。

在AQL中你可以使用" FULLTEXT" (见http://docs.arangodb.org/Aql/Operators.html):

arangosh [_system]> db._query("return FULLTEXT(vertices, 'text', 'hallo')").toArray()
[ 
  [ 
    { 
      "_id" : "vertices/268953710", 
      "_rev" : "268953710", 
      "_key" : "268953710", 
      "text" : "hallo hugo" 
    }, 
    { 
      "_id" : "vertices/269150318", 
      "_rev" : "269150318", 
      "_key" : "269150318", 
      "text" : "hallo emil" 
    }, 
    { 
      "_id" : "vertices/268757102", 
      "_rev" : "268757102", 
      "_key" : "268757102", 
      "text" : "hallo world" 
    } 
  ] 
]

对于HTTP,您可以使用AQL的HTTP接口和上面的FULLTEXT函数。

或者你可以使用" PUT / _api / simple / fulltext"端点并直接执行全文搜索(参见http://docs.arangodb.org/HttpSimpleQuery/README.html)。