我正在创建一个xamarin.forms应用程序,我们使用Frank A. Krueger的sqlite-net-plc。它应该支持全文搜索,我试图实现。
现在,全文搜索似乎有效。我创建了一个类似的查询:
SELECT * FROM Document d JOIN(
SELECT document_id
FROM SearchDocument
WHERE SearchDocument MATCH 'test*'
) AS ranktable USING(document_id)
似乎工作正常。但是,我想按照他们的排名顺序返回结果,否则结果是无用的。根据文档(https://www.sqlite.org/fts3.html),语法应为:
SELECT * FROM Document d JOIN(
SELECT document_id, rank(matchinfo(SearchDocument)) AS rank
FROM SearchDocument
WHERE SearchDocument MATCH 'test*'
) AS ranktable USING(document_id)
ORDER BY ranktable.rank
然而,引擎似乎不知道“等级”功能:
[ERROR] FATAL UNHANDLED EXCEPTION: SQLite.SQLiteException: no such function: rank
它确实知道“matchinfo”功能。
谁能告诉我我做错了什么?
编辑:经过一些搜索后,似乎没有在库中实现排名功能。我糊涂了。人们如何在不关心结果顺序的情况下使用全文搜索?是否有其他方式对结果进行排序,以便最相关的结果位于顶部?
答案 0 :(得分:0)
这取决于SQLitePCLRaw.bundle_green。值得研究。