Сочетание сортировки релевантности с поиском по префиксу слова в ArangoDb? - PullRequest
0 голосов
/ 11 июня 2019

В ArangoDB я использую представление поиска, которое сортирует результаты, используя BM25 , что-то вроде:

FOR doc IN someView
SEARCH ANALYZER(doc.description == 'foo', 'text_en')
SORT BM25(doc)
RETURN doc

Это только выполняет поиск по полному слову (т.е. не будет соответствовать документамсодержащий, например, "foot", "a football"), поэтому я хотел бы вместо этого использовать поиск по префиксу слова.

Я знаю, что это можно сделать с помощью индексов FULLTEXT, например:

FOR doc IN FULLTEXT(someCollection, "description", "prefix:foo")
RETURN doc

но тогда я теряю сортировку по релевантности.

Есть ли способ объединить оба из них, чтобы я мог выполнить частичное сопоставление слов, но также получить результаты, упорядоченные по релевантности?

1 Ответ

1 голос
/ 11 июня 2019

Вы можете использовать функцию STARTS_WITH, например,

FOR doc IN someView
SEARCH ANALYZER(STARTS_WITH(doc.description, 'foo'), 'text_en')
SORT BM25(doc)
RETURN doc

Чтобы узнать больше о функциях, поддерживаемых ArangoSearch, пожалуйста, ознакомьтесь с документацией: https://www.arangodb.com/docs/stable/aql/views-arango-search.html

...