Sphinx на Windows 7
Появилась задача установить и настроить поисковый движок Sphinx. Много слышал об этой системе, но никогда не пользовался и если честно, боялся. Думал что все там сложно и долго. Оказалось все не так уж и страшно. Устанавливал я Sphinx на Windows 7.
Я нагуглил несколько статей по установке Sphinx-а. Очень хорошая статья попалась.
И так, какие проблемы у меня возникли, не смотря на подробно описанный материал.
- Я не поменял в конфигах пути. Там стоит что то типа @CONFIGDIR@, нужно поставить реальные пути.
- Все вроде заработало, но при запуске из PHP выдавал вот такую ошибку
Query failed: failed to read searchd response (status=2613, ver=11825, len=775172397, read=74).
Гуглил, гуглил и прочитал что ДЕМОН не включен(Проблема была не в этом, но демон тоже был не включен).
Включение демона : Панель управления -> Администрирование -> Службы. И там включаем Демона Sphinx. У меня он называется SphinxSearch, а вообще по умолчанию searchd.
В общем если видите такую ошибку, знайте что вы обращаетесь не к тому порту. В конфиге у вас указан порт listen = 9312, вот к нему и нужно обращаться.
Выглядит это примерно так:
$cl = new SphinxClient();
$cl->SetServer( "localhost", 9312 );
А я чет подумал что сюда порт MySql нужен, он же 3306.
И так, все установили, и теперь выводить результаты нужно, а выводится только ID. Где то прочитал, что это нормально(ну хз, я в данный момент еще разбираюсь.).
Получаю список ID и вывожу товары. Все отлично! Ура!
Теперь самую малость о режимах:
Существуют следующие соответствия режима:
- SPH_MATCH_ALL, будут искаться все слова запроса (режим по умолчанию);
- SPH_MATCH_ANY, будет искаться любое из слов запроса;
- SPH_MATCH_PHRASE, будет искаться как фраза, требующая идеального соответствия;
- SPH_MATCH_BOOLEAN, Будет искаться по выражению учитывая операторы AND(и), OR(|), NOT(! или -) и скобки для группировки;
- SPH_MATCH_EXTENDED, поиск по сложной формуле;
- SPH_MATCH_FULLSCAN, Ничего по тексту не ищем, но фильтры и группировки будут применяться.
Ну пока мне этого достаточно. Дальше мне нужно будет глубже изучить Sphinx, вот тогда напишу еще заметочку, может 2 =)
Удачи!
