Sphinx

Примеры

Сниппеты

Переиндексация и перезагрузка демона

rotate.sh
indexer --rotate --all
service sphinxsearch restart

CentOS:

rotate.sh
service searchd restart

Подключение к Sphinx через MySQL:

shpinx-connect-mysql.sh
mysql --port=9306 --host=127.0.0.1

Индексы, поиск по индексу, проверка стемминга:

call-keywords.sql
SHOW TABLES;
SELECT * FROM `index` WHERE MATCH('word');
CALL KEYWORDS('word', 'index');

Сниппеты:

snippets.sql
CALL SNIPPETS('Терминатор 4: да придет спаситель', 'rutracker_rutracker', 'терминатор 4');
+---------------------------------------------------------------------+
| snippet                                                             |
+---------------------------------------------------------------------+
| <b>Терминатор</b> 4: да придет спаситель                            |
+---------------------------------------------------------------------+

Настройка сниппетов

Метаинформация, атрибуты:

meta.sql
SELECT * FROM rutracker_rutracker WHERE MATCH('терминатор');
...
SHOW META;
+---------------+----------------------+
| Variable_name | Value                |
+---------------+----------------------+
| total         | 444                  |
| total_found   | 444                  |
| time          | 0.000                |
| keyword[0]    | терминатор           |
| docs[0]       | 444                  |
| hits[0]       | 457                  |
+---------------+----------------------+
DESC rutracker_rutracker;
+--------------+-----------+
| Field        | Type      |
+--------------+-----------+
| id           | integer   |
| torrent_name | field     |
| year         | field     |
| time_stamp   | timestamp |
+--------------+-----------+

Решения

Гибкость против хрупкости

Помещайте абстракции в текст программы, а подробности - в область метаданных («Программист-прагматик»).

Проблема: необходимость вносить правки в конфигурацию, код поиска, а также в шаблоны при появлении новой поисковой сущности.

Решение: вынос параметров поиска сущностей в конфигурацию, реализация общего шаблона, поиск на основе представления MySQL.

Ссылки