将关联排序与ArangoDb中的单词前缀搜索结合在一起?

时间:2019-06-11 13:53:14

标签: 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

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

有没有办法将这两种方法结合在一起,以便我可以执行部分​​单词匹配,还可以按相关性对结果进行排序?

1 个答案:

答案 0 :(得分:1)

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