Записи с тэгом ‘Sphinx’

Sphinx, часть 3. Real-Time индексы

Monday, November 8th, 2010

— Мы забрели в зону с сильным магическим индексом, — объяснил он, — Когда-то давно здесь образовалось мощное магическое поле.
— Вот именно, — ответил проходящий мимо куст.

— Терри Пратчетт «Цвет Волшебства»

Минувшим летом команда Андрея Аксёнова осчастливила комьюнити новой версией Sphinx за нумером 1.10-beta. Среди прочих полезных нововведений вроде строковых атрибутов и многопоточного поиска была фича, название которой заставило моё сердце биться быстрей – RT-индексы. При более подробном изучении документации возбуждение поугасло, ибо ожидания мои, видимо, были сильно завышенными. Но тем не менее шаг вперёд сделан. И какой шаг! Это то, чего старому Сфинксу очень не хватало, отчего до сих пор в некоторых задачах приходилось пользоваться старым-добрым, но сильно тормознутым LIKE.

Итак, мы получили быстрый поиск по индексу, обновляющемуся в реальном режиме времени. Но кармические законы вселенной подсказывают, что необходимо при этом что-то и отдать и от чего-то отказаться. А отказаться придётся от префиксов и инфиксов (будем надеяться на будущие версии), от MVA-атрибутов (аналогично), а также подготовиться к тому, что индекс обновлять нам придется вручную. Последний пункт означает, что при добавлении записи в базу надо сделать INSERT в индекс, при удалении из базы – DELETE из индекса, а при изменении записи в таблице – REPLACE всё в тот же индекс. Неудобно, но за всё надо платить. Раньше в такой ситуации пришлось бы переиндексировать весь индекс целиком или хотя бы дельту.

Посмотрим более детально.

(more…)

Метки: , ,
Категория: MySQL, Web-dev | 3 Комментариев »


Sphinx, часть 2: Perl API

Thursday, December 31st, 2009

perlsphinxВ прошлой статье «Sphinx: начало» я описал процедуру установки Sphinx и показал, как создавать полнотекстовые индексы на примере базы данных с книгами. Теперь нам надо понять, как использовать эти индексы в Perl-приложении. Это может быть любое Perl-приложение, но в основном Sphinx Perl API находит применение в Web CGI. Почему именно в Perl? Да потому что про PHP и так написано везде и помногу, и, кроме того, Perl – это наше всё.
(more…)

Метки: , ,
Категория: MySQL, Perl, Web-dev | 4 Комментариев »


Sphinx, часть 1: Начало

Friday, December 11th, 2009

sphinxSphinx – это отличный полнотекстовый поисковый движок, который легко интегрируется в любое web-приложение и не требует особых усилий по установке и настройке. Распространяется он по лицензии GPL2 и в настоящее время поддерживает СУБД MySQL и PostgreSQL, а также работу с XML-файлами. Название Sphinx принято расшифровывать как SQL Phrase Index, а автором его является наш соотечественник Андрей Аксёнов.
Но хватит на этом теории. Посмторим, как приручить этого мифического зверя…
(more…)

Метки: , , ,
Категория: Linux, MySQL, Web-dev | 2 Комментариев »