2013-08-27 62 views
7

我有近200k條目的表。當我嘗試使用LIKE進行搜索時,速度非常慢。現在我決定使用FTS。所以我創建了兩個索引來進行搜索。然後我創建了fts虛擬表。如何在SQLite中使用FTS3

我不知道如何使用新創建的FTS表。所以我的問題是如何使用該虛擬表進行搜索?你能給個例子嗎?

回答

7

這在the documentation中有解釋。

您不需要FTS搜索的兩個索引。您應該聲明id列爲INTEGER PRIMARY KEY。 您可能不需要FST表中的entry_id列。

將文本複製到FTS表:

INSERT INTO search_eng_fts(id, re_value, ke_value, g_value) 
SELECT id, re_value, ke_value, g_value FROM search_eng; 

然後你可以使用MATCH運營商在該表進行搜索:

SELECT id FROM search_eng_fts WHERE re_value MATCH 'hello';