2013-08-27 16 views
7

Neredeyse 200k girişli bir tablom var. LIKE ile aramayı denediğimde çok yavaştı. Şimdi FTS kullanmaya karar verdim. Bu yüzden, aramanın yapılacağı iki dizin oluşturdum. Sonra fts sanal tablo yarattım.SQLite'de FTS3 nasıl kullanılır

Yeni oluşturulan FTS tablosunu nasıl kullanacağımı bilmiyorum. Sorularım, arama yapmak için bu sanal tabloyu nasıl kullanacağım? Bir örnek verebilir misin?

cevap

7

Bu, the documentation'da açıklanmıştır.

FTS araması için iki dizine gerek yoktur.

id sütununu INTEGER PRIMARY KEY olarak bildirmelisiniz. Muhtemelen FST tablosunda entry_id sütununa ihtiyacınız yoktur.

Kopya FTS tabloya metin:

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

Sonra o tabloda arama yapmak için MATCH operatörünü kullanabilirsiniz:

SELECT id FROM search_eng_fts WHERE re_value MATCH 'hello'; 
İlgili konular