Установка поискового движка Sphinx на CentOS сервер

В народе бытует мнение, что Sphinx нужен для того, что бы быстро искать слова в текстах, товары в магазинах, а также нужные, полезные, а местами и крайне интересные файлы на торрент-трекерах. Ходят слухи, что недавно выпущенная из секретных лабораторий версия 2.0.1 умеет приносить хозяину тапочки и частично заменяет собой MySQL. Проще всего установить Sphinx на CentOS выполнив команду: 1 yum install sphinx но sphinx не всегда есть в репозитариях и не всегда нужной версии. Поэтому пойдём по другому пути. Пройдём по ссылке и выберем подходящий пакет для нашей ОС и архитектуры http://sphinxsearch.com/downloads/release/ Для CentOS 6.4 x86_64 я выберу http://sphinxsearch.com/files/sphinx-2.2.9-1.rhel6.x86_64.rpm Сейчас я установлю этот пакет с помощью yum 1 yum localinstall sphinx-2.2.9-1.rhel6.x86_64.rpm Должны пробежать строки типа таких: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Installing : sphinx-2.2.9-1.rhel6.x86_64 1/1 Sphinx installed! Now create a full-text index, start the search daemon, and you're all set. To manage indexes: editor /etc/sphinx/sphinx.conf To rebuild all disk indexes: sudo -u sphinx indexer --all --rotate To start/stop search daemon: service searchd start/stop To query search daemon using MySQL client: mysql -h 0 -P 9306 mysql> SELECT * FROM test1 WHERE MATCH('test'); See the manual at /usr/share/doc/sphinx-2.2.9 for details. For commercial support please contact Sphinx Technologies Inc at http://sphinxsearch.com/contacts.html Verifying : sphinx-2.2.9-1.rhel6.x86_64 1/1 Installed: sphinx.x86_64 0:2.2.9-1.rhel6 Complete! Отредактируем нужным образом файл /etc/sphinx/sphinx.conf и запустим service searchd start или /etc/init.d/searchd start ...

13 квітня 2016 · 2 хвилин · 271 слово · dimetrius

Установка полнотекстового поиска elasticsearch на CentOS 6,7 / Ubuntu 14.10

Поисковый движок elasticsearch – это автократическая обертка над Lucene. Движок способен работать из коробки, не требуя к себе каких-либо предварительных ласк. Модная штучка для любителей похвастаться современным поиском, по семантической мощности напоминающего крупные поисковые движки. Обо всех плюсах elasticsearch интересующиеся могут узнать из официального сайта или из бложика какого-нибудь сумасшедшего фанатика. Java является основным требованием для установки ElasticSearch. Поэтому убедитесь что она установлена на вашей системе. 1 2 3 4 5 # java -version java version "1.8.0_31" Java(TM) SE Runtime Environment (build 1.8.0_31-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode) Если Java не установлена, то в любом случае сначала нужно её установить. Elasticsearch может быть загружен непосредственно с официального сайта, более того, он предлагает уже собранные пакеты для RHEL и Debian. Установка elasticsearch: Скачаем и установим публичный ключ. Ubuntu 14.10 & Linux Mint 17.1 $ wget -qO - https://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add - RHEL 7 / CentOS 7 # rpm --import https://packages.elasticsearch.org/GPG-KEY-elasticsearch Активируем репозитарий elasticsearch. Ubuntu 14.10 & Linux Mint 17.1 $ sudo add-apt-repository "deb http://packages.elasticsearch.org/elasticsearch/1.4/debian stable main" RHEL 7 / CentOS 7 1 2 3 4 5 6 7 8 # cat <<EOF >> /etc/yum.repos.d/elasticsearch.repo [elasticsearch-1.4] name=Elasticsearch repository for 1.4.x packages baseurl=http://packages.elasticsearch.org/elasticsearch/1.4/centos gpgcheck=1 gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch enabled=1 EOF Установим elasticsearch, используя следующие команды: Ubuntu 14.10 & Linux Mint 17.1 $ sudo apt-get update && sudo apt-get install elasticsearch ...

13 квітня 2016 · 3 хвилин · 522 слів · dimetrius

Плагин Sphinx Search для Joomla 2.5 и UTF-8

Sphinx - это поисковая система, позволяющая быстро индексировать таблицы баз данных и производить полнотекстовый поиск по ним. В основе работы системы лежит принцип индексации базы альтернативным приложением. Приложение Sphinx устанавливается в систему. Все настройки для него прописываются в конфигурационном файле sphinx.conf, в числе которых присутствуют параметры соединения с базой данных, запросы к таблицам для индексирования, каталоги для хранения индексов и прочее. Полную документацию для настройки sphinx.conf можно найти здесь. После установки вы получаете пять плагинов для поиска по различным компонентам Joomla и компонент административной части для настройки. Активировав поисковые плагины Sphinx, можно деактивировать стандартный поиск Joomla. Для успешной индексации русскоязычных баз данных пришлось немного изменить конфиг sphinx. Пример можете посмотреть ниже. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 # # site parent source site-parent { type = mysql sql_host = localhost sql_user = dbuser sql_pass = dbpass sql_db = dbname sql_port = 3306 sql_query_pre = SET NAMES 'utf8' sql_query_pre = SET SESSION query_cache_type=OFF } # # Joomla articles # source joomla_articles : site-parent { #only published and Public articles are indexed sql_query = \ SELECT `id`, `title`, `introtext`, `fulltext`, `metakey`, `metadesc`, \ UNIX_TIMESTAMP(`created`) as created, `hits`, `catid` \ FROM nz6ol_content \ WHERE state = 1; sql_attr_uint = hits sql_attr_uint = catid sql_attr_string = title sql_attr_timestamp = created } index joomla_articles { source = joomla_articles path = /var/www/site.com/sphinx/data/articles morphology = stem_enru, soundex, metaphone charset_type = utf-8 charset_table = U+FF10..U+FF19->0..9, 0..9, U+FF41..U+FF5A->a..z, U+FF21..U+FF3A->a..z, A..Z->a..z, a..z, U+0149, U+017F, U+0138, U+00DF, U+00FF, U+00C0..U+00D6->U+00E0..U+00F6, U+00E0..U+00F6, U+00D8..U+00DE->U+00F8..U+00FE, U+00F8..U+00FE, U+0100->U+0101, U+0101, U+0102->U+0103, U+0103, U+0104->U+0105, U+0105, U+0106->U+0107, U+0107, U+0108->U+0109, U+0109, U+010A->U+010B, U+010B, U+010C->U+010D, U+010D, U+010E->U+010F, U+010F, U+0110->U+0111, U+0111, U+0112->U+0113, U+0113, U+0114->U+0115, U+0115, U+0116->U+0117, U+0117, U+0118->U+0119, U+0119, U+011A->U+011B, U+011B, U+011C->U+011D, U+011D, U+011E->U+011F, U+011F, U+0130->U+0131, U+0131, U+0132->U+0133, U+0133, U+0134->U+0135, U+0135, U+0136->U+0137, U+0137, U+0139->U+013A, U+013A, U+013B->U+013C, U+013C, U+013D->U+013E, U+013E, U+013F->U+0140, U+0140, U+0141->U+0142, U+0142, U+0143->U+0144, U+0144, U+0145->U+0146, U+0146, U+0147->U+0148, U+0148, U+014A->U+014B, U+014B, U+014C->U+014D, U+014D, U+014E->U+014F, U+014F, U+0150->U+0151, U+0151, U+0152->U+0153, U+0153, U+0154->U+0155, U+0155, U+0156->U+0157, U+0157, U+0158->U+0159, U+0159, U+015A->U+015B, U+015B, U+015C->U+015D, U+015D, U+015E->U+015F, U+015F, U+0160->U+0161, U+0161, U+0162->U+0163, U+0163, U+0164->U+0165, U+0165, U+0166->U+0167, U+0167, U+0168->U+0169, U+0169, U+016A->U+016B, U+016B, U+016C->U+016D, U+016D, U+016E->U+016F, U+016F, U+0170->U+0171, U+0171, U+0172->U+0173, U+0173, U+0174->U+0175, U+0175, U+0176->U+0177, U+0177, U+0178->U+00FF, U+00FF, U+0179->U+017A, U+017A, U+017B->U+017C, U+017C, U+017D->U+017E, U+017E, U+0410..U+042F->U+0430..U+044F, U+0430..U+044F, U+4E00..U+9FFF enable_star = 1 expand_keywords = 1 index_exact_words = 1 min_word_len = 3 min_prefix_len = 0 min_infix_len = 3 } # # Joomla web links # source joomla_weblinks : site-parent { #only published links are indexed sql_query = \ SELECT `id`, `catid`, `title`, `description`, UNIX_TIMESTAMP(`created`) as created, `hits` \ FROM nz6ol_weblinks \ WHERE state = 1; sql_attr_uint = hits sql_attr_uint = catid sql_attr_string = title sql_attr_timestamp = created } index joomla_weblinks { source = joomla_weblinks path = /var/www/site.com/sphinx/data/weblinks morphology = none min_word_len = 3 min_prefix_len = 0 min_infix_len = 3 } # # Joomla contacts # source joomla_contacts : site-parent { sql_query = \ SELECT `id`, `catid`, `name` as title, `con_position`, `address`, `state`,\ `country`, `postcode`, `telephone`, `misc`, `email_to`, id as modified, 0 as`hits`, id as created \ FROM nz6ol_contact_details \ WHERE published = 1; sql_attr_uint = hits sql_attr_uint = catid sql_attr_string = title sql_attr_uint = created } index joomla_contacts { source = joomla_contacts path = /var/www/site.com/sphinx/data/contacts morphology = none min_word_len = 3 min_prefix_len = 0 min_infix_len = 3 } # # Joomla categories # source joomla_categories : site-parent { #only published links are indexed sql_query = \ SELECT `id`, id as `catid`, `title`, `description`, 0 as `hits`, 0 as `created`\ FROM nz6ol_categories \ WHERE published = 1; sql_attr_uint = hits sql_attr_uint = catid sql_attr_string = title sql_attr_uint = created } index joomla_categories { source = joomla_categories path = /var/www/site.com/sphinx/data/categories morphology = stem_enru, soundex, metaphone charset_type = utf-8 charset_table = U+FF10..U+FF19->0..9, 0..9, U+FF41..U+FF5A->a..z, U+FF21..U+FF3A->a..z, A..Z->a..z, a..z, U+0149, U+017F, U+0138, U+00DF, U+00FF, U+00C0..U+00D6->U+00E0..U+00F6, U+00E0..U+00F6, U+00D8..U+00DE->U+00F8..U+00FE, U+00F8..U+00FE, U+0100->U+0101, U+0101, U+0102->U+0103, U+0103, U+0104->U+0105, U+0105, U+0106->U+0107, U+0107, U+0108->U+0109, U+0109, U+010A->U+010B, U+010B, U+010C->U+010D, U+010D, U+010E->U+010F, U+010F, U+0110->U+0111, U+0111, U+0112->U+0113, U+0113, U+0114->U+0115, U+0115, U+0116->U+0117, U+0117, U+0118->U+0119, U+0119, U+011A->U+011B, U+011B, U+011C->U+011D, U+011D, U+011E->U+011F, U+011F, U+0130->U+0131, U+0131, U+0132->U+0133, U+0133, U+0134->U+0135, U+0135, U+0136->U+0137, U+0137, U+0139->U+013A, U+013A, U+013B->U+013C, U+013C, U+013D->U+013E, U+013E, U+013F->U+0140, U+0140, U+0141->U+0142, U+0142, U+0143->U+0144, U+0144, U+0145->U+0146, U+0146, U+0147->U+0148, U+0148, U+014A->U+014B, U+014B, U+014C->U+014D, U+014D, U+014E->U+014F, U+014F, U+0150->U+0151, U+0151, U+0152->U+0153, U+0153, U+0154->U+0155, U+0155, U+0156->U+0157, U+0157, U+0158->U+0159, U+0159, U+015A->U+015B, U+015B, U+015C->U+015D, U+015D, U+015E->U+015F, U+015F, U+0160->U+0161, U+0161, U+0162->U+0163, U+0163, U+0164->U+0165, U+0165, U+0166->U+0167, U+0167, U+0168->U+0169, U+0169, U+016A->U+016B, U+016B, U+016C->U+016D, U+016D, U+016E->U+016F, U+016F, U+0170->U+0171, U+0171, U+0172->U+0173, U+0173, U+0174->U+0175, U+0175, U+0176->U+0177, U+0177, U+0178->U+00FF, U+00FF, U+0179->U+017A, U+017A, U+017B->U+017C, U+017C, U+017D->U+017E, U+017E, U+0410..U+042F->U+0430..U+044F, U+0430..U+044F, U+4E00..U+9FFF enable_star = 1 expand_keywords = 1 index_exact_words = 1 min_word_len = 3 min_prefix_len = 0 min_infix_len = 3 } # # Joomla newsfeeds # source joomla_newsfeeds : site-parent { sql_query = \ SELECT `id`, `catid`, link, name as title, numarticles as `hits`, 0 as `created`\ FROM nz6ol_newsfeeds \ WHERE published = 1; sql_attr_uint = hits sql_attr_uint = catid sql_attr_string = title sql_attr_uint = created } index joomla_newsfeeds { source = joomla_newsfeeds path = /var/www/site.com/sphinx/data/newsfeeds morphology = none min_word_len = 3 min_prefix_len = 0 min_infix_len = 3 } index joomla_search { type = distributed local = joomla_articles local = joomla_weblinks local = joomla_contacts local = joomla_newsfeeds } indexer { mem_limit = 512M } searchd { compat_sphinxql_magics = 0 listen = localhost:9312 log = /var/log/sphinx/searchd.log query_log = /var/log/sphinx/query.log read_timeout = 5 max_children = 30 pid_file = /var/run/sphinxsearch/searchd.pid max_matches = 50000 binlog_path = /var/run/sphinxsearch/ } Обратите внимание на параметры: ...

28 вересня 2015 · 7 хвилин · 1403 слів · dimetrius

Как перемешать строки в текстовом файле - Npust Email List Manager

Время от времени мне необходима функция перемешивания строк в текстовом файле, при этом он не обязательно должен иметь расширение *.txt. Довольно долго я искал подходящую программу и такая нашлась. Называется она Npust Email List Manager. Программа имеет возможности перемешивания строк, упорядочивания по алфавиту, объединения двух, или более файлов в один, удаления определённых строк из файла. Интерфейс программы только на английском, но и функций в ней не так уж много, чтоб не разобраться с несколькими словами. Скачать можно на официальном сайте программы.

1 вересня 2015 · 1 хвилина · 81 слово · dimetrius

Моменты по StreamRotator

При переносе StreamRotator возникла проблема, отображалась пустая страница с фоном. Оказалось в админке светилась надпись что база данных будет проверена автоматически, или можете сделать это вручную. Но поскольку я задание в крон на тот момент ещё не добавил, то автоматически база не ремонтировалась. Сделал руками и сайт стал корректно отображаться. Этого не пришлось бы делать, если бы сразу было перенесено cron задание. http://streamscripts.com

25 червня 2015 · 1 хвилина · 63 слів · dimetrius

Скрипт запуска, остановки, перезапуска потокового сервера shoutcast (update июль 2015)

Вот нашёл скрипт запуска сервера shoutcast, решил сохранить на память. Ниже может быть что-то не верно, точно не помню: 1 2 3 4 5 6 7 8 9 cd /etc/init.d vim shoutcast **paste in above data and save** chmod 0755 /etc/init.d/shoutcast cd /etc/rc.d/rc5.d ln -s ../init.d/shoutcast S99shoutcast chkconfig --add shoutcast chkconfig shoutcast on /etc/init.d/shoutcast start Конечно вы можете заремить строки, содержащие $DAEMON $CONFIG2 > /dev/null 2>&1 &, $DAEMON $CONFIG3 > /dev/null 2>&1 &, и т.д. Что ниже уже сделано. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 #!/bin/sh ### BEGIN INIT INFO # Provides: shoutcast # Required-Start: $remote_fs $network # Required-Stop: $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Stop/start script Shoutcast # Description: Init script for SHOUTcast. By caraoge, Thomas R Bailey, modified for work with three servers by Nathan Skelton, last mod D.Tashin # Latest Shoutcast DNAS leave here http://download.nullsoft.com/shoutcast/tools/, but not all version work with UTF-8. ### END INIT INFO # # Last edited Jul 25 2015 # Set config to config file location # set daemon to sc_serv location ############################################################################ ## CHANGE THESE VALUES to match your setup ## CONFIG is the fully qualified location of your config file ## DAEMON is the fully qualified location of the sc_serv binary ## Note, the script will look for sc_serv and sc_serv.conf in /home/shoutcast ############################################################################ BIN="sc_serv" DAEMON="/usr/bin/sc_serv" CONFIG="/etc/shoutcast/sc_serv.conf" #CONFIG2="/home/shoutcast/sc_serv2.conf" #CONFIG3="/home/shoutcast/sc_serv3.conf" DESC="Shoutcast DNAS server" ############# Don't fiddle below this line ############## # Check for SHOUTcast binary test -f $DAEMON || exit 0 # The init commands case "$1" in start) echo "Starting $DESC..." $DAEMON $CONFIG > /dev/null 2>&1 & # $DAEMON $CONFIG2 > /dev/null 2>&1 & # $DAEMON $CONFIG3 > /dev/null 2>&1 & ;; stop) echo "Stopping $DESC..." kill -9 `ps -C $BIN -o pid --no-headers` ;; restart) echo "Stopping $DESC..." kill -9 `ps -C $BIN -o pid --no-headers` echo "Starting $DESC..." $DAEMON $CONFIG > /dev/null 2>&1 & # $DAEMON $CONFIG2 > /dev/null 2>&1 & # $DAEMON $CONFIG3 > /dev/null 2>&1 & ;; *) echo "usage: /etc/init.d/shoutcast" echo "$0 {start|stop|restart}" exit 1 ;; esac exit 0 А вот процесс установки shoutcast: Создаём директорию ...

20 жовтня 2014 · 3 хвилин · 467 слів · dimetrius

Настройка Ubuntu сетевым шлюзом для раздачи интернета в локальную сеть

В этой заметке будет рассказано как с помощью iptables настроить системы с Ubuntu 9.10-11.04, Debian 5 и 6 для раздачи интернета другим компьютерам локальной сети. На простом примере будет показано как машину с двумя сетевыми интерфейсами (в один поступает интернет, из другого — «выходит») сделать шлюзом. Допустим, что аппаратно-сетевая часть уже полностью настроена, на вашей машине имеются работоспособный интернет и вы видите другие компьютеры сети. Поэтому давайте разберемся что к чему, для этого введем команду: 1 ifconfig Она выдаст список работающих в данный момент сетевых интерфейсов. Среди них надо опознать те, что начинаются со слов «Link encap:Ethernet» — это интерфейсы сетевых карт. Как правило, это eth0 и eth1. Теперь потребуется опознать в какой из них поступает интернет, а из какого «выходит». Проще всего это сделать по их ip-адресам. Итак, допустим через eth0 вы получаете интернет (например через adsl-модем по протоколу ppp), а eth1 связывает вас с локальной сетью. Если локальная сеть настроена через Network Manager, то мы рекомендуем прописать эти настройки непосредственно в системном конфигурационном файле сети: 1 sudo nano /etc/network/interfaces Здесь исправьте настройки вашего сетевого интерфейса, подключенного к локальной сети (в нашем случае eth1), соответствующим образом: 1 2 3 4 5 6 auto eth1 iface eth1 inet static address 192.168.0.10 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 Значение address — это айпи вашей машины в локальной сети, по этому адресу собственно и будет располагаться шлюз. Значение netmask — в локальных сетях для этого диапазона чаще всего такая. Для других диапазонов можно вычислить здесь. Значения network и broadcast будут зависеть от вашего адреса. То есть, если ваш локальный ip — 10.0.0.10, то network и broadcast будут 10.0.0.0 и 10.255.255.255 соответственно. ...

10 жовтня 2014 · 4 хвилин · 676 слів · dimetrius

IPFW несколько полезных комманд

1 2 3 4 5 ipfw list ipfw show ipfw delete 00118 ipfw add 120 allow tcp from 5.255.255.2 to me dst-port 6378 ipfw add 132 deny tcp from any to me dst-port 6378 Правила хранятся в /etc/rc.firewall, /etc/rc.firewall.xxx

7 жовтня 2014 · 1 хвилина · 39 слів · dimetrius

Отправка Email сообщений из консоли Linux

Практическое руководство по отправке Email сообщений из консоли Linux. Вы узнаете как: Отладить отправку сообщений с локального MTA сервера; Проверить отправку Email из PHP; Как прикрепить файл к Email сообщению из консоли; Отправить сообщение из консоли: 1 echo "BODY" | mail -s "SUBJECT" [email protected] Составить сообщение в консоли: 1 2 3 4 mail [email protected] Cc: <оставляем пустым> Subject: вводим заголовок и для отправки жмем Ctrl+D или Enter и заполним тело сообщения.. Null message body; hope that's ok Проверка PHP ф-ции mail(): 1 php -r "mail('[email protected]', 'Subject', 'Body');" Аттач файла к Email сообщению: 1 mutt -a "/home/stas/attach.pdf" -s "Subject" -- [email protected] Источник

25 вересня 2014 · 1 хвилина · 101 слово · dimetrius

Модуль внутри материала Joomla

В том месте, где Вы хотите, чтобы отображался Ваш модуль прописываете следующий код: { loadposition user9 } (это если Вы назвали позицию user9, если же назвали как-то по своему, то пишете свое название позиции) Важно!! Когда будете прописывать этот код у себя, обязательно сдвиньте фигурные скобки, чтобы не было пробелов! Данный способ для вставки модуля в материал идентичен для всех версий Joomla!

26 червня 2014 · 1 хвилина · 62 слів · dimetrius