Joe*_*mov 7 sqlite android fts3
我有几乎200k条目的表.当我尝试用LIKE搜索时,它非常慢.现在我决定使用FTS.所以我创建了两个索引来进行搜索.然后我创建了fts虚拟表.
`CREATE TABLE [search_eng] (
[id] INTEGER PRIMARY KEY AUTOINCREMENT,
[entry_id] INTEGER,
[re_value] TEXT,
[ke_value] TEXT,
[g_value] TEXT);
CREATE INDEX idx_se_re ON search_eng (re_value);
CREATE INDEX idx_se_gv ON search_eng (g_value);
CREATE VIRTUAL TABLE search_eng_fts USING fts3(id, entry_id, re_value, ke_value, g_value);`
Run Code Online (Sandbox Code Playgroud)
我不知道如何使用新创建的FTS表.所以我的问题是如何使用该虚拟表进行搜索?你能给我举个例子吗?
这在文档中有解释.
FTS搜索不需要两个索引.
您应该将id列声明为INTEGER PRIMARY KEY.您可能不需要entry_idFST表中的列.
将文本复制到FTS表中:
INSERT INTO search_eng_fts(id, re_value, ke_value, g_value)
SELECT id, re_value, ke_value, g_value FROM search_eng;
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用MATCH运算符在该表中进行搜索:
SELECT id FROM search_eng_fts WHERE re_value MATCH 'hello';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6112 次 |
| 最近记录: |