【轉】sphinx服務器安裝及配置詳解 安裝PHP sphinx擴展
一、架構:ip192.168.0.200 redhat5.4(64位) 二、安裝 #cd /usr/local/src #yum -y install mysql-devel #安裝mysql頭文件支持mysql #wget http://sphinxsearch.com/files/sphinx-0.9.9.tar.gz #tar -xvzf sphinx-0.9.9.tar.gz #cd sphinx-0.9.9 #./configure --prefix=/usr/local/sphinx --with-mysql --with-iconv --enable-id64 #make #make install 三、配置 #cd /usr/local/sphinx #cp etc/sphinx.conf.dist etc/sphinx.conf #vim etc/sphinx.conf #修改配置文件 source goods_src { type = mysql sql_host = localhost sql_user = ecshop sql_pass = ecshop sql_db = ecshop sql_port = 3306 sql_sock = /tmp/mysql.sock sql_query_pre = SET NAMES utf8 sql_query_pre = SET SESSION query_cache_type=OFF sql_query = \ SELECT goods_id,cat_id,goods_sn,goods_name,brand_id,provider_name,goods_number,goods_weight,market_price,shop_price,promote_price,promote_start_date,keywords \ FROM ecs_goods sql_attr_multi = uint gid from query; SELECT goods_id,cat_id FROM ecs_goods sql_attr_uint = brand_id sql_attr_float = market_price sql_attr_float = shop_price sql_attr_float = promote_price sql_attr_float = goods_weight sql_attr_str2ordinal = goods_sn sql_attr_str2ordinal = goods_name sql_ranged_throttle = 100 } index goods { source = goods_src path = /usr/local/sphinx/var/data/goods docinfo = extern mlock = 1 morphology = none min_stemming_len = 1 min_word_len = 1 charset_type = utf-8 charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F ignore_chars = U+00AD ngram_len = 1 html_strip = 0 } indexer { mem_limit = 1024M //建議256到1024之間 } searchd { listen = 9312 log = /usr/local/sphinx/var/log/searchd.log query_log = /usr/local/sphinx/var/log/query.log read_timeout = 5 client_timeout = 300 max_children = 30 pid_file = /usr/local/sphinx/var/log/searchd.pid max_matches = 1000 seamless_rotate = 1 preopen_indexes = 0 unlink_old = 1 mva_updates_pool = 1M max_packet_size = 8M max_filters = 256 max_filter_values = 4096 } 四、啓動 #/usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --all #建立索引 #/usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/sphinx.conf #啓動索引服務 #crontab -e 加入crontab五分鐘從新索引 */5 * * * */usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --rotate 下面是安裝PHP sphinx擴展 一、安裝 一、先安裝sphinxclient #cd /usr/local/src #wget http://sphinxsearch.com/files/sphinx-0.9.9.tar.gz #tar xzvf sphinx-0.9.9.tar.gz #cd sphinx-0.9.9/api/libsphinxclient #vim sphinxclient.c 找到 void sock_close ( int sock ); 改成 static void sock_close ( int sock ); #./configure --prefix=/usr/local/sphinxclient #make #make install 二、安裝sphinx擴展 #wget http://pecl.php.net/get/sphinx-1.0.4.tgz #tar xvzf sphinx-1.0.4.tgz #cd sphinx-1.0.4 #/usr/local/php/bin/phpize #./configure --with-php-config=/usr/local/php/bin/php-config --with-sphinx=/usr/local/sphinxclient #make #make install 修改php.ini extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/" [sphinx] extension=sphinx.so 二、測試 一、安裝sphinx 請參照文檔http://linux008.blog.51cto.com/2837805/622088 二、編寫測試文件 #vim sphinx.php <?php $s = new SphinxClient; setServer("localhost", 9312); $s->setMatchMode(SPH_MATCH_ANY); $s->setMaxQueryTime(3); $result = $s->query("demo"); var_dump($result); ?> #/usr/local/php/bin/php sphinx.php 運行結果 array(9) { ["error"]=> string(0) "" ["warning"]=> string(0) "" ["status"]=> int(0) ["fields"]=> array(5) { [0]=> string(6) "cat_id" [1]=> string(13) "provider_name" [2]=> string(12) "goods_number" [3]=> string(18) "promote_start_date" [4]=> string(8) "keywords" } ["attrs"]=> array(8) { ["goods_sn"]=> string(1) "3" ["goods_name"]=> string(1) "3" ["brand_id"]=> string(1) "1" ["goods_weight"]=> string(1) "5" ["market_price"]=> string(1) "5" ["shop_price"]=> string(1) "5" ["promote_price"]=> string(1) "5" ["gid"]=> string(10) "1073741825" } ["total"]=> int(0) ["total_found"]=> int(0) ["time"]=> float(0) ["words"]=> array(1) { ["demo"]=> array(2) { ["docs"]=> int(0) ["hits"]=> int(0) } } } 原文地址: sphinx服務器安裝及配置詳解:http://linux008.blog.51cto.com/2837805/622088 http://linux008.blog.51cto.com/2837805/622171