sqlite-net-plc全文排名功能

时间:2017-09-21 14:48:07

标签: xamarin.forms full-text-search sqlite-net

我正在创建一个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”功能。

谁能告诉我我做错了什么?

编辑:经过一些搜索后,似乎没有在库中实现排名功能。我糊涂了。人们如何在不关心结果顺序的情况下使用全文搜索?是否有其他方式对结果进行排序,以便最相关的结果位于顶部?

1 个答案:

答案 0 :(得分:0)

这取决于SQLitePCLRaw.bundle_green。值得研究。