Valery, писал(а):
Alexbootch, меня заинтересовало это загадочное fts в SQLite.
Если можешь, расшифруй, что это за зверь (может ты имеешь ввиду триггеры?).
В любом случае попробую разобраться.
Valery, это не триггеры, а полнотекстовой поиск по базе данных
Для использования полнотекстового поиска нужно создать виртуальную таблицу следующим образом:
sql-command ::= CREATE VIRTUAL TABLE [ database-name .] table-name USING fts3 [( [ argument [, argument ]*] )]
argument ::= name | TOKENIZE tokenizer
tokenizer ::= SIMPLE | PORTER | user-defined
argument ::= name | TOKENIZE tokenizer
tokenizer ::= SIMPLE | PORTER | user-defined
Поиск по таблице производится так:
по всей таблице (по всем столбцам):
SELECT * FROM mytable WHERE mytable MATCH 'новое сообщение';
либо так:
SELECT * FROM mytable WHERE mytable MATCH 'нов* сообщен*';
Поиск по определённому столбцу так:
SELECT * FROM mytable WHERE mytable MATCH 'naim: новое сообщение';
либо так:
SELECT * FROM mytable WHERE mytable MATCH 'naim: нов* сообщен*';
где naim - название столбца таблицы
Поиск по нескольким столбцам производится так:
SELECT * FROM mytable WHERE mytable MATCH 'naim: нов* сообщен* texts: расшифр* треггер*';
Поиск по таблице за исключением слова (слов) сообщен*:
SELECT * FROM mytable WHERE mytable MATCH 'naim: нов* -сообщен*';
Выделение найденных слов:
select snippet(naim, '[', ']', '%%') from mytable where naim match 'нов*';
Нахождение позиции (offsets):
select naim, offsets(mytable) from mytable where mytable match 'нов*';