1.Установка sphinxsearch
1 |
# apt-get install sphinxsearch |
2.Создаем тестовую базу test и вливаем в нее дамп
1 |
# mysql –uroot –p |
1 |
mysql> create database test; |
1 |
mysql> source /etc/sphinxsearch/example.sql; |
3.Настраиваем конфигурационный файл Sphinx
1 |
# cp /etc/sphinxsearch/sphinx.conf.sample /etc/sphinxsearch/sphinx.conf |
1 |
# nano /etc/sphinxsearch/sphinx.conf |
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 |
source src1 { type = mysql # Параметры подключения к БД sql_host = localhost sql_user = username sql_pass = password sql_db = test sql_port = 3306 # optional, default is 3306 # Установим кодировку для работы с БД sql_query_pre = SET NAMES utf8 sql_query_pre = SET CHARACTER SET utf8 # Запрос выборки данных для индексации sql_query = SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content FROM documents sql_attr_uint = group_id sql_attr_timestamp = date_added # Запрос доп. информации для вывода результата (используется утилитой "search") sql_query_info = SELECT * FROM documents WHERE id=$id # Время простоя (sleep) перед посылкой запросов серверу (предназначен для разгрузки сервера БД) # Если установите "= 1000", то засыпание будет длится 1 секунду sql_ranged_throttle = 0 } source wordpress { type = mysql sql_host = localhost sql_user = wordpressuser sql_pass = wordpresspassword sql_db = wordpress sql_port = 3306 # optional, default is 3306 sql_query_pre = SET NAMES utf8 sql_query_pre = SET CHARACTER SET utf8 sql_query = SELECT ID as post_id, post_title, post_content FROM wp_posts WHERE post_type = 'post' sql_query_info = SELECT * FROM wp_posts WHERE ID = $id sql_ranged_throttle = 0 } index test1 { # Использовать соответствующий source-блок настроек при индексации source = src1 # Путь до файлов индекса path = /var/lib/sphinxsearch/data/test1 # Способ хранения индекса (none, inline, extern) docinfo = extern # Memory lock (http://www.sphinxsearch.com/docs/manual-0.9.8.html#conf-mlock) mlock = 0 # Минимальная длина индексируемого слова min_word_len = 2 # Установка используемой кодировки charset_type = sbcs } index wordpress { source = wordpress path = /var/lib/sphinxsearch/data/wordpress docinfo = extern mlock = 0 min_word_len = 2 charset_type = sbcs } ## indexer settings indexer { # Максимальный лимит используемой памяти RAM mem_limit = 32M # max_iops = 40 # max_iosize = 1048576 # max_xmlpipe2_field = 4M # write_buffer = 1M # max_file_field_buffer = 32M } searchd { # Адрес сервера listen = 127.0.0.1:9312 # Лог log = /var/log/sphinxsearch/searchd.log # Лог запросов query_log = /var/log/sphinxsearch/query.log # Таймаут на соединение с сервером (в секундах). При истечении времени происходит обрыв read_timeout = 5 client_timeout = 300 # Максимальное кол-во потомков от процесса max_children = 30 # Путь до pid-файла pid_file = /var/run/sphinxsearch/searchd.pid # Максимальное кол-во результатов выдачи max_matches = 1000 seamless_rotate = 1 preopen_indexes = 1 unlink_old = 1 binlog_path = /var/lib/sphinxsearch/data # ondisk_dict_default = 1 mva_updates_pool = 1M max_packet_size = 8M # crash_log_path = /var/log/sphinxsearch/crash max_filters = 256 max_filter_values = 4096 # listen_backlog = 5 # read_buffer = 256K # read_unhinted = 32K max_batch_queries = 32 # subtree_docs_cache = 4M # subtree_hits_cache = 8M workers = threads # for RT to work # dist_threads = 4 # plugin_dir = /usr/local/sphinx/lib # collation_server = utf8_general_ci # collation_libc_locale = ru_RU.UTF-8 # watchdog = 1 } |
1 |
# service sphinxsearch restart |
1 2 3 |
# tail -f /var/log/sphinxsearch/searchd.log # tail -f /var/log/sphinxsearch/query.log |
4.Обновляем индексы
1 |
# indexer --all |
5.Добавляем обновление индексов в сron-задание
1 |
# crontab -e |
1 |
/usr/bin/indexer --rotate --config /etc/sphinxsearch/sphinx.conf --all |
Для обновления текущего индекса используйте «—rotate», он добавит к созданному индексу новые данные, а измененные […]