我的 Android 应用程序包含一个 SQLite 表(全文搜索/FTS3),其中包含以下数据:
格林产品
在应用程序中,当用户搜索Green's Product时,会找到匹配项。但是当用户搜索Greens Product(即,没有撇号)时,没有匹配项。
无论用户是否输入撇号,我都需要退回产品。
所以我一直在阅读有关 FTS3 标记器的文档,这表明我需要在tokenchars
参数中指定撇号。
所以我尝试像这样重新创建我的表:
CREATE VIRTUAL TABLE products USING fts3 (product_name TEXT, tokenize=simple "tokenchars='");
但是当用户搜索Greens Product时仍然没有匹配。
我也试过:
CREATE VIRTUAL TABLE products USING fts3 (product_name TEXT, tokenize=simple "tokenchars=''");
(双撇号)
和
CREATE VIRTUAL TABLE products USING fts4 (product_name TEXT, tokenize=simple "tokenchars='");
(fts4)
和
CREATE VIRTUAL TABLE products USING fts4 (product_name TEXT, tokenize=simple "tokenchars=''");
(双撇号和 fts4)
但他们似乎都没有为我工作。
我不确定下一步该尝试什么。而且我也不确定我是否会因为 Android 的 SQLite 实现而遇到一些限制。
有没有人有什么建议?