由于在win8.1下安装 选的这个版本
Win64 binaries w/MySQL+PgSQL+libstemmer+id64 support | 2.2.6-release | 7.3M |
下载页面
http://sphinxsearch.com/downloads/release/
1.编辑配置文件
下载完 解压 到其中一个目录下
首先配置sphinx 配置文件 解压后sphinx目录下有个sphinx.conf.in 复制到bin目录下 并改名 sphinx.conf
配置如下 需要改的几个参数 稍微整理下 在发出
2.安装步骤
2.1 安装服务 启动守护进程
D:wwwSphinxin>searchd --install --config D:wwwSphinxinsphinx.conf --servicename Sphinx
Sphinx 2.2.6-id64-release (r4843)
Copyright (c) 2001-2014, Andrew Aksyonoff
Copyright (c) 2008-2014, Sphinx Technologies Inc (http://sphinxsearch.com)
Installing service...
Service 'Sphinx' installed successfully.
2.2 建立索引
D:wwwSphinxin>indexer.exe --all
Sphinx 2.2.6-id64-release (r4843)
Copyright (c) 2001-2014, Andrew Aksyonoff
Copyright (c) 2008-2014, Sphinx Technologies Inc (http://sphinxsearch.com)
using config file './sphinx.conf'...
indexing index 'test1'...
collected 3 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 3 docs, 173 bytes
total 0.161 sec, 1073 bytes/sec, 18.61 docs/sec
indexing index 'test1stemmed'...
collected 3 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 3 docs, 173 bytes
total 0.061 sec, 2824 bytes/sec, 48.98 docs/sec
skipping non-plain index 'rt'...
total 6 reads, 0.000 sec, 0.1 kb/call avg, 0.0 msec/call avg
total 24 writes, 0.001 sec, 0.1 kb/call avg, 0.0 msec/call avg
2.3 开启服务
D:wwwSphinxin>net start Sphinx
Sphinx 服务正在启动 .
Sphinx 服务已经启动成功。
20160828停止Sphinx服务 net stop Sphinx
C:WindowsSystem32cmd.exe 右键管理员权限执行
PS:按照顺序才是正确的
3.测试搜索
用的官方API事例调用的 不过有些问题 我把现在改的先发上来参考 还有些没弄明白
1 <?php 2 require ( "sphinxapi.php" ); 3 $cl = new SphinxClient (); 4 $q = "模型"; 5 $sql = ""; 6 $mode = SPH_MATCH_ALL; 7 $host = "127.0.0.1"; 8 $port = 9312; 9 $index = "*"; 10 $groupby = ""; 11 $groupsort = "@group desc"; 12 $filter = "id"; 13 $filtervals = array(); 14 $distinct = ""; 15 $sortby = ""; 16 $sortexpr = ""; 17 $limit = 20; 18 $ranker = SPH_RANK_PROXIMITY_BM25; 19 $select = ""; 20 21 $cl->SetServer ( $host, $port ); 22 $cl->SetConnectTimeout ( 1 ); 23 24 $cl->SetArrayResult ( true ); 25 26 $cl->SetRankingMode ( $ranker ); 27 $res = $cl->Query ( $q, $index ); 28 var_dump($res); 29 30 if ( $res===false ) 31 { 32 print "Query failed: " . $cl->GetLastError() . ". "; 33 34 } else 35 { 36 if ( is_array($res["matches"]) ) 37 { 38 $n = 1; 39 print "Matches: "; 40 41 42 foreach ( $res["matches"] as $docinfo ) 43 { 44 print "$n. id=$docinfo[id], weight=$docinfo[weight]"; 45 print " "; 46 47 foreach ( $res["attrs"] as $attrname => $attrtype ) 48 { 49 50 $value = $docinfo["attrs"][$attrname]; 51 52 if ( $attrtype==SPH_ATTR_MULTI || $attrtype==SPH_ATTR_MULTI64 ) 53 { 54 55 $value = "(" . join ( ",", $value ) .")"; 56 57 } else 58 { 59 if ( $attrtype==SPH_ATTR_TIMESTAMP ) 60 $value = date ( "Y-m-d H:i:s", $value ); 61 62 63 } 64 print ", $attrname=$value"; 65 } 66 print " "; 67 $n++; 68 } 69 } 70 71 72 } 73 ?>
搜索得到的结果是这样的
array(10) {
["error"]=>
string(0) ""
["warning"]=>
string(0) ""
["status"]=>
int(0)
["fields"]=>
array(8) {
[0]=>
string(8) "pictitle"
[1]=>
string(10) "picsubhead"
[2]=>
string(11) "piccategroy"
[3]=>
string(6) "pictag"
[4]=>
string(8) "picalbum"
[5]=>
string(9) "picauthor"
[6]=>
string(14) "picdescription"
[7]=>
string(8) "picmusic"
}
["attrs"]=>
array(7) {
["pictitle"]=>
int(7)
["picposttime"]=>
int(2)
["picsubhead"]=>
int(7)
["piccategroy"]=>
int(7)
["pictag"]=>
int(7)
["picdescription"]=>
int(7)
["picmusic"]=>
int(7)
}
["matches"]=>
array(1) {
[0]=>
array(3) {
["id"]=>
int(11)
["weight"]=>
string(4) "2680"
["attrs"]=>
array(7) {
["pictitle"]=>
string(7) "test111"
["picposttime"]=>
string(10) "1417853738"
["picsubhead"]=>
string(8) "fubiaoti"
["piccategroy"]=>
string(6) "模型"
["pictag"]=>
string(8) "zidingyi"
["picdescription"]=>
string(7) "picture"
["picmusic"]=>
string(20) "http://www.baidu.com"
}
}
}
["total"]=>
string(1) "1"
["total_found"]=>
string(1) "1"
["time"]=>
string(5) "0.000"
["words"]=>
array(2) {
["模"]=>
array(2) {
["docs"]=>
string(1) "2"
["hits"]=>
string(1) "2"
}
["型"]=>
array(2) {
["docs"]=>
string(1) "2"
["hits"]=>
string(1) "2"
}
}
}
Matches:
1. id=11, weight=2680
, pictitle=test111, picposttime=2014-12-06 16:15:38, picsubhead=fubiaoti, piccategroy=模型, pictag=zidingyi, picdescription=picture, picmusic=http://www.baidu.com
中文词典这些属性设置已经移除charset_dictpath 剩下的 等我研究好了 继续发布
在版本升级中 重点的东西提下
在2.2.1-beta版本下
官方推荐使用 SphinxQL
SphinxAPI and Sphinx SE以后将会被移除
在 2.2.2-beta版本中
移除了CLI search 以前版本的 search 命名不可用 bin目录下也没有search.exe
反对使用SetMatchMode() API
移除了charset_type and mssql_unicod设置 只支持UTF-8编码
PS: 2.2.6 默认开始了
listen = 9306:mysql41 启用了SphinxQL 并且ID默认都是64位