Как выполнить полнотекстовый запрос в графе arangodb с помощью aql, чертежей и http-интерфейса?

#arangodb #aql

#arangodb #aql

Вопрос:

Скажем, у меня есть вершины со свойством «text» и полнотекстовым индексом для этого свойства.

В оболочке arango 2.1.2 я могу запрашивать вершины с помощью

 g._vertices.fulltext("text","my text value")
  

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

Но если я использую blueprints-arangodb-graph-1.0.8, запрос, который запускает реализация blueprint, выглядит так

 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" }
  

ОБНОВЛЕНИЕ-2
Я нашел AQL:

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

Ответ №1:

Допустим, ваша коллекция называется «вершины», а ваш атрибут — «текст».

В 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 вы можете использовать HTTP-интерфейс для AQL и вышеупомянутую ПОЛНОТЕКСТОВУЮ функцию.

В качестве альтернативы вы можете использовать конечную точку «PUT /_api / simple / fulltext» и выполнить полнотекстовый поиск напрямую (см. http://docs.arangodb.org/HttpSimpleQuery/README.html ).

Комментарии:

1. Это выглядит проще, но курсор недоступен.