在 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句