您的位置:首页 > 其它

windows安装sphinx3.0.1(中文检索)

2018-04-02 17:36 417 查看

sphinx的简介就不多说,请直接查看文档

1.从spinx官网下载最新版的sphinx 解压。

地址:http://www.sphinxsearch.com/


2.新建data 和 log 目录



3.新建sphinx.conf配置文件 放在bin目录 下

配置项的信息可以参考etc/sphinx.conf.dist 非常全面。


source doc
{
type            = mysql
sql_host        = localhost
sql_user        = root
sql_pass        = 123
sql_db          = test
sql_port        = 3306
sql_query_pre   = SET NAMES 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
}

index testindex
{
source          = doc
path            = E:/wamp64/www/sphinx/data/testindex
mlock         = 0
min_word_len  = 2
min_prefix_len = 0
min_infix_len = 1
ngram_len     = 1
ngram_chars = U+4E00..U+9FBB, U+3400..U+4DB5, U+20000..U+2A6D6, U+FA0E, U+FA0F, U+FA11, U+FA13, U+FA14, U+FA1F, U+FA21, U+FA23, U+FA24, U+FA27, U+FA28, U+FA29, U+3105..U+312C, U+31A0..U+31B7, U+3041, U+3043, U+3045, U+3047, U+3049, U+304B, U+304D, U+304F, U+3051, U+3053, U+3055, U+3057, U+3059, U+305B, U+305D, U+305F, U+3061, U+3063, U+3066, U+3068, U+306A..U+306F, U+3072, U+3075, U+3078, U+307B, U+307E..U+3083, U+3085, U+3087, U+3089..U+308E, U+3090..U+3093, U+30A1, U+30A3, U+30A5, U+30A7, U+30A9, U+30AD, U+30AF, U+30B3, U+30B5, U+30BB, U+30BD, U+30BF, U+30C1, U+30C3, U+30C4, U+30C6, U+30CA, U+30CB, U+30CD, U+30CE, U+30DE, U+30DF, U+30E1, U+30E2, U+30E3, U+30E5, U+30E7, U+30EE, U+30F0..U+30F3, U+30F5, U+30F6, U+31F0, U+31F1, U+31F2, U+31F3, U+31F4, U+31F5, U+31F6, U+31F7, U+31F8, U+31F9, U+31FA, U+31FB, U+31FC, U+31FD, U+31FE, U+31FF, U+AC00..U+D7A3, U+1100..U+1159, U+1161..U+11A2, U+11A8..U+11F
b4ea
9, U+A000..U+A48C, U+A492..U+A4C6
}

indexer
{
mem_limit       = 128M
}

searchd
{
listen          = 9312
listen          = 9306:mysql41
log         = E:/wamp64/www/sphinx/log/searchd.log
query_log       = E:/wamp64/www/sphinx/log/query.log
read_timeout        = 5
max_children        = 30
pid_file        = E:/wamp64/www/sphinx/log/searchd.pid
seamless_rotate     = 1
preopen_indexes     = 1
unlink_old      = 1
workers         = threads # for RT to work
binlog_path     = E:/wamp64/www/sphinx/data
}


4.生成索引文件



成功后会在data目录下生成文件



5.启动searchd服务。



(这个步骤忘了在这里补上)

修改官网给的sql内容,在其中添加上中文



更新索引文件



6.用api实现全文搜索

<?php
require ( "sphinxapi.php" );
$cl = new SphinxClient ();
$q = "我要好好学学"; //模拟关键字
$sql = "";
$mode = SPH_MATCH_ALL;
$host = "127.0.0.1";
$port = 9312;
$index = "*";
$cl->SetServer ( $host, $port );
$cl->SetConnectTimeout(10);
$cl->SetArrayResult(true);
$cl->SetMatchMode(SPH_MATCH_ALL);
$res = $cl->Query ( $q, $index );
var_dump($res['matches']);




sphinx搜索只是查询sphinx索引,并不查询mysql,从sphinx服务中查询出的id就是mysql 数据库中的主键。根据主键查询mysql。当数据库中的内容发生改变后,要重新生成索引,或者在数据表中添加一个字段用来标记该条数据是否生成了索引,重建索引时,只生成没有生成索引的记录,然后合并到索引中去即可

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: