安装Sphinx-for-chinese
1 下载Sphinx-for-chinese
http://code.google.com/p/sphinx-for-chinese/downloads/list
sphinx-for-chinese-2.0.2-beta-r3019.tar.gz 源代码
xdict_1.1.tar.gz 词库
2 编译安装Sphinx-for-chinese
$sudo apt-get install libmysql++-dev ##mysql-dev在ubuntu上找不到了 $tar -xzvf sphinx-for-chinese-2.0.2-beta-r3019.tar.gz $cd sphinx-for-chinese-2.0.2-beta-r3019/ $./configure --prefix=/usr/local/sphinx $make $sudo make install
3 配置sphinx.conf
###索引源###
source article_src
{
type = mysql #####数据源类型
sql_host = localhost ######mysql主机
sql_user = root ########mysql用户名
sql_pass = pwd############mysql密码
sql_db = test #########mysql数据库名
sql_port= 3306 ###########mysql端口
sql_query_pre = SET NAMES UTF8 ###mysql检索编码,特别要注意这点,很多人中文检索不到是数据库的编码是GBK或其他非UTF8
chinese_dictionary = /usr/local/sphinx/etc/xdict##中文字典
sql_query = SELECT id,title,cat_id,member_id,content,created FROM sphinx_article ####### 获取数据的sql
#####以下是用来过滤或条件查询的属性############
sql_attr_uint = cat_id ######## 无符号整数属性
sql_attr_uint = member_id
sql_attr_timestamp = created ############ UNIX时间戳属性
sql_query_info = select * from sphinx_article where id=$id ######### 用于命令界面端(CLI)调用的测试
}
### 索引 ###
index article
{
source = article_src ####声明索引源
path = /usr/local/sphinx/var/data/article #######索引文件存放路径及索引的文件名
docinfo = extern ##### 文档信息存储方式
mlock = 0 ###缓存数据内存锁定
morphology = none #### 形态学(对中文无效)
min_word_len = 1 #### 索引的词最小长度
charset_type = utf-8 #####数据编码
}
######### 索引器配置 #####
indexer
{
mem_limit = 256M ####### 内存限制
}
############ sphinx 服务进程 ########
searchd
{
#listen = 9312 ### 监听端口,在此版本开始,官方已在IANA获得正式授权的9312端口,以前版本默认的是3312
log = /usr/local/sphinx/var/log/searchd.log #### 服务进程日志 ,一旦sphinx出现异常,基本上可以从这里查询有效信息,轮换(rotate)出的问题一般可在此寻到答案
query_log = /usr/local/sphinx/var/log/query.log ### 客户端查询日志,笔者注:若欲对一些关键词进行统计,可以分析此日志文件
read_timeout = 5 ## 请求超时
max_children = 30 ### 同时可执行的最大searchd 进程数
pid_file = /usr/local/sphinx/var/log/searchd.pid #######进程ID文件
max_matches = 1000 ### 查询结果的最大返回数
seamless_rotate = 1 ### 是否支持无缝切换,做增量索引时通常需要
}
4 几个常用命令
生成字典
$/usr/local/sphinx/bin/mkdict xdict.txt xdict
建立索引
$sudo ./indexer -c etc/sphinx.conf article ### 建立索引文件的命令
开启守护进程
$sudo ./searchd -c etc/sphinx.conf & ### 使sphinx在后台运行