将相关性排序与 ArangoDb 中的词前缀搜索相结合?

Combining relevance sorting with word prefix searching in ArangoDb?

在 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

但是我失去了相关性排序。

有没有一种方法可以将这两者结合起来,以便我可以执行部分​​单词匹配,同时还能获得按相关性排序的结果?

您可以使用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