Поиск в виртуальной таблице (FTS3) в sqlite
Я создаю виртуальную таблицу для хранения текста в базе данных.
CREATE VIRTUAL TABLE testtable USING FTS3 (
id INTEGER, -- this field have duplicate values
test1 INTEGER,
test2 INTEGER,
test3 TEXT
)
это слово, но когда я хочу искать специальный идентификатор, получаю очень медленно.
также я не могу проиндексировать поле "id" и получить ошибку:
virtual tables may not be indexed
хочу искать вот так:
select * from testtable where id = 48880
Как сделать быстрый поиск по этому запросу, я ищу быстро без FTS .
1 ответ
Решение
В таблицах FTS только запросы FTS выполняются быстро.
Значения в id
столбцы индексируются как слова, поэтому вы должны искать их как слова:
SELECT * FROM testtable WHERE id MATCH '48880'