Вверх ↑
Ответов: 1891
Рейтинг: 110
#1: 2008-05-03 14:03:41 ЛС | профиль | цитата
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


Поиск по таблице производится так:

по всей таблице (по всем столбцам):

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 'нов*';

карма: 0
%time%
0