Страницы

Поиск по вопросам

пятница, 12 октября 2018 г.

Как использовать Sphinx в Yii2 + PostgreSQL?

Не до конца понимаю, возможно ли использование Sphinxsearch в Yii2 в качестве поискового движка в связке с PostgreSQL? В экстеншене: Yii2-sphinx говорится про MySQL, но про PgSQL ни слова. Сам экстеншен устанавливается, и конфиг вида:
'components' => [ 'sphinx' => [ 'class' => 'yii\sphinx\Connection', 'dsn' => 'pgsql:host=localhost;port=5432;dbname=testdb', 'username' => 'yii', 'password' => '********', ], ]
ошибок не вызывает, даже при отсутствии Sphinx на сервере. В связи с вышеизложенным возникает ряд вопросов:
Подходит ли данный экстеншен для использования его с PgSQL. Если да, где про это можно почитать, или посмотреть реальные примеры (Yii2 + PgSQL + Sphinx)? Стоит ли использовать его, или лучше что-то другое, вроде: pg-sphinx? Стоит ли вообще его использовать, быть может есть решения быстрее и проще?
Стэк: Debian, Nginx, FPM, PHP7, Yii2, PgSQL
UPD Вопрос всё ещё актуален! :)


Ответ

Первая фраза по ссылке yii2-sphinx в блоке Configuration, говорит о том, что используется только протокол MySQL:
This extension interacts with Sphinx search daemon using MySQL protocol and SphinxQL query language.
По идее, Вы можете попробовать добавить 'pgsql' => 'yii\sphinx\Schema' в массив $schemaMap, в файле Connection.php (в основной директории модуля), и, скорее всего простые запросы даже будут отрабатывать, но, как только будет более-менее сложный запрос, гарантирую, что Вы получите ошибку.
Лучшим вариантом будет использование расширения pg-sphinx или похожее, если Вам действительно нужен Sphinx. В противном случае, попробуйте обычный полнотекстовый поиск, возможно, для ваших целей хватит и его.

Комментариев нет:

Отправить комментарий