1.下載地址
http://sphinxsearch.com/downloads/current/
2.解壓文件放到盤內
3.根目錄創建 data 和 log 文件夾
4.復制 etc目錄下的 min.conf 到 bin目錄 並修改成 后綴.conf 文件
5.修改.conf內容
# # Minimal Sphinx configuration sample (clean, simple, functional) # source src1 { type = mysql sql_host = 127.0.0.1 sql_user = root sql_pass = root sql_db = test sql_port = 3306 # optional, default is 3306 sql_query_pre = SET NAMES utf8 sql_query = \ SELECT id,question \ FROM questions #sql_attr_uint = group_id #sql_attr_timestamp = date_added } index test1 { source = src1 path = E:/sphinx-3.1.1/data/test1 ngram_len = 1 ngram_chars = U+3000..U+2FA1F } indexer { mem_limit = 128M } searchd { listen = 9312 listen = 9306:mysql41 log = E:/sphinx-3.1.1/log/searchd.log query_log = E:/sphinx-3.1.1/log/query.log read_timeout = 5 max_children = 30 pid_file = E:/sphinx-3.1.1/log/searchd.pid seamless_rotate = 1 preopen_indexes = 1 unlink_old = 1 workers = threads # for RT to work binlog_path = E:/sphinx-3.1.1/data }
6.生成文件
indexer --config demo.conf test1
7.開啟sphinx服務
searchd --config demo.conf
8.mysql 查詢 創建的數據
mysql -h127.0.0.1 -P9306
9.PHP查詢數據
<?php $t1 = microtime(true); require("sphinxapi.php"); $sphinx = new SphinxClient(); $sphinx->setServer('127.0.0.1',9312); $k = '酶'; //搜索的關鍵字 $sphinx->_limit = 100000; $res = $sphinx->Query($k,'test1'); $ids = array_keys($res['matches']); $ids = implode(',', $ids); $m = mysqli_connect('127.0.0.1','root','root','test','3306'); mysqli_query($m,'set names utf8'); $sql = "select * from questions where id in($ids)"; $res = mysqli_query($m,$sql); while ($row=mysqli_fetch_assoc($res)) { $data[] = $row; } $_arr = []; foreach ($data as $key => $value) { $val = str_replace($k, "<font color='red'>{$k}</font>", $value['question']); $arr['id'] = $value['id']; $arr['question'] = $val; $_arr[] = $arr; } $t2 = microtime(true); echo '耗時'.round($t2-$t1,3).'秒'; echo '<pre>'; var_dump($_arr);
10.效果
11.對比mysql查詢