3

说,我有属性“文本”的顶点和该属性的全文索引。

在 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
4

1 回答 1

2

假设您的集合称为“顶点”,而您的属性是“文本”。

在 AQL 中,您可以使用“全文”(参见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)。

于 2014-06-26T13:21:55.693 回答