Полезные решения, шпаргалки и примеры по html, css, js, jQuery, MySQL, PHP, HostCMS, ssh.
1. Sphinx требует несколько библиотек для установки на Debian. Используйте apt-get, чтобы загрузить и установить их (mysql-client, unixodbc, libpq5):
sudo apt-get install mysql-client unixodbc libpq5
2. Теперь мы можем установить Sphinx:
sudo wget http://sphinxsearch.com/files/sphinxsearch_2.2.10-release-1~wheezy_amd64.deb
sudo dpkg -i sphinxsearch_2.2.10-release-1~wheezy_amd64.deb
3. Редактируем файл /etc/default/sphinxsearch
:
sudo mcedit /etc/default/sphinxsearch
пишем следующее:
START=yes
4. Создадим свой sphinx.conf
:
sudo mcedit /etc/sphinxsearch/sphinx.conf
Со следующими параметрами:
index hostcms {
type = rt
path = /var/lib/sphinxsearch/data/hostcms
wordforms = /etc/sphinxsearch/wordforms.txt
rt_mem_limit = 64M
morphology = lemmatize_ru, lemmatize_en
rt_field = title
rt_field = text
rt_attr_string = title
rt_attr_timestamp = datetime
rt_attr_string = url
rt_attr_uint = size
rt_attr_uint = inner
rt_attr_multi = siteuser_group_id
rt_attr_uint = module
rt_attr_uint = module_id
rt_attr_uint = module_value_type
rt_attr_uint = module_value_id
rt_attr_uint = site_id
}
searchd {
listen = localhost:9312:mysql41
log = /var/log/sphinxsearch/searchd.log
query_log = /var/log/sphinxsearch/query.log
read_timeout = 5
client_timeout = 300
max_children = 30
persistent_connections_limit = 30
pid_file = /var/run/sphinxsearch/searchd.pid
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
mva_updates_pool = 1M
max_packet_size = 8M
max_filters = 256
max_filter_values = 4096
max_batch_queries = 32
workers = threads # for RT to work
}
indexer {
mem_limit = 128M
lemmatizer_cache = 64M
}
common {
lemmatizer_base = /etc/sphinxsearch/dic/
}
4. Создаем и сохраняем файл для словоформ wordforms.txt
пока пустым:
sudo mcedit /etc/sphinxsearch/wordforms.txt
5. Создаем папку для словарей:
sudo mkdir /etc/sphinxsearch/dic/
6. Скачиваем словари:
cd /etc/sphinxsearch/dic/
sudo wget http://sphinxsearch.com/files/dicts/ru.pak
sudo wget http://sphinxsearch.com/files/dicts/en.pak
7. Стартуем Sphinx первый раз:
sudo service sphinxsearch start
8. Проверьте корректность соединения с Sphinx:
mysql -h 127.0.0.1 -P 9312
9. Если все ок, можно настраивать драйвер в hostcms, в конфигурационный файл modules/search/config/config.php
вносим следующие настройки:
<?php
return array (
'default' => array(
'driver' => 'sphinx',
'database' => 'sphinx',
'index' => 'hostcms'
),
'modules' => array(
0 => 'Structure',
1 => 'Informationsystem',
2 => 'Forum',
3 => 'Shop',
4 => 'Helpdesk',
5 => 'Siteuser'
)
);
В конфигурационный файл modules/core/config/database.php
добавьте параметры нового соединения sphinx:
<?php
return array(
'default' => array(
... // здесь какие-то уже Ваши настройки соединения с базой данных
),
'sphinx' => array(
'driver' => 'mysql',
'host' => '127.0.0.1:9312',
'database' => NULL
)
);
10. Теперь можно переиндексировать сайт в админке "Поиск по сайту" -> "Переиндексировать".