Можно ли найти документы, используя неполные слова и ArangoSearch? - PullRequest
0 голосов
/ 22 января 2019

Например, давайте представим, что мой документ содержал атрибут «описание» и его значение было «Быстрая коричневая лиса».Может ли ArangoSearch использовать ввод «Quic» и найти документ, содержащий описание «Quick brown fox»?

Насколько я знаю, ArangoSearch может найти совпадения, только если токен / словозавершено.Это правда?

Вот код запроса, чтобы показать, о чем я говорю.Если переменная привязки @searchInputValue принимает значение «Quic», документ не будет найден, но если он принимает значение «Quick», он найдет документ.

FOR document IN v_test
    SEARCH ANALYZER(
        (
            document.description IN TOKENS('@searchInputValue', 'text_en')
        )
        , 'text_en'
    ) 
    RETURN document

1 Ответ

0 голосов
/ 24 января 2019

Вы можете использовать функцию FULLTEXT AQL: https://docs.arangodb.com/3.0/AQL/Functions/Fulltext.html

Однако вы не можете написать синтаксис префикса непосредственно в AQL при использовании входных параметров. Вы должны отформатировать searchInputValue, чтобы передать:

Quic,+prefix:Quic

Таким образом, вы можете написать свой запрос как:

FOR res IN FULLTEXT(v_test, "description", @searchInputValue)
RETURN res
...