Записи с тэгом ‘Sphinx’
Sphinx, часть 3. Real-Time индексы
Monday, November 8th, 2010
— Вот именно, — ответил проходящий мимо куст.
Минувшим летом команда Андрея Аксёнова осчастливила комьюнити новой версией Sphinx за нумером 1.10-beta. Среди прочих полезных нововведений вроде строковых атрибутов и многопоточного поиска была фича, название которой заставило моё сердце биться быстрей – RT-индексы. При более подробном изучении документации возбуждение поугасло, ибо ожидания мои, видимо, были сильно завышенными. Но тем не менее шаг вперёд сделан. И какой шаг! Это то, чего старому Сфинксу очень не хватало, отчего до сих пор в некоторых задачах приходилось пользоваться старым-добрым, но сильно тормознутым LIKE.
Итак, мы получили быстрый поиск по индексу, обновляющемуся в реальном режиме времени. Но кармические законы вселенной подсказывают, что необходимо при этом что-то и отдать и от чего-то отказаться. А отказаться придётся от префиксов и инфиксов (будем надеяться на будущие версии), от MVA-атрибутов (аналогично), а также подготовиться к тому, что индекс обновлять нам придется вручную. Последний пункт означает, что при добавлении записи в базу надо сделать INSERT в индекс, при удалении из базы – DELETE из индекса, а при изменении записи в таблице – REPLACE всё в тот же индекс. Неудобно, но за всё надо платить. Раньше в такой ситуации пришлось бы переиндексировать весь индекс целиком или хотя бы дельту.
Посмотрим более детально.
Метки: MySQL, Sphinx, Web-dev
Категория: MySQL, Web-dev | 3 Комментариев »
Sphinx, часть 2: Perl API
Thursday, December 31st, 2009
В прошлой статье «Sphinx: начало» я описал процедуру установки Sphinx и показал, как создавать полнотекстовые индексы на примере базы данных с книгами. Теперь нам надо понять, как использовать эти индексы в Perl-приложении. Это может быть любое Perl-приложение, но в основном Sphinx Perl API находит применение в Web CGI. Почему именно в Perl? Да потому что про PHP и так написано везде и помногу, и, кроме того, Perl – это наше всё.
(more…)
Метки: MySQL, Perl, Sphinx
Категория: MySQL, Perl, Web-dev | 4 Комментариев »
Sphinx, часть 1: Начало
Friday, December 11th, 2009
Sphinx – это отличный полнотекстовый поисковый движок, который легко интегрируется в любое web-приложение и не требует особых усилий по установке и настройке. Распространяется он по лицензии GPL2 и в настоящее время поддерживает СУБД MySQL и PostgreSQL, а также работу с XML-файлами. Название Sphinx принято расшифровывать как SQL Phrase Index, а автором его является наш соотечественник Андрей Аксёнов.
Но хватит на этом теории. Посмторим, как приручить этого мифического зверя…
(more…)
Метки: Linux, MySQL, Perl, Sphinx
Категория: Linux, MySQL, Web-dev | 2 Комментариев »