|
系统要求:
1.Windows XP或以上,或者是Linux系统
2.Mysql 5.0以上
安装步骤
1、先在官方网站下载最新的安装包sphinx-1.10-beta-win32.zip
2、解压到D盘,目录为 D:\spihinx
3、在根目录(D:\spihnx)创建sphinx.conf文件,内容如下:
# Minimal Sphinx configuration sample (clean, simple, functional)
#
source test1
{
type= mysql
sql_host= localhost
sql_user= search
sql_pass= search
sql_db= test
sql_port= 3306# optional, default is 3306
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
sql_query_info= SELECT * FROM documents WHERE id=$id
}
index test1
{
source= test1
path= D:/sphinx/data/
docinfo= extern
#charset_type= sbcs
# 编码
charset_type = utf-8
# 指定utf-8的编码表
charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
# 简单分词,只支持0和1,如果要搜索中文,请指定为1
ngram_len = 1
# 需要分词的字符,如果要搜索中文,去掉前面的注释
ngram_chars = U+3000..U+2FA1F
}
#index testrt
#{
#type= rt
#rt_mem_limit= 32M
#
#path= @CONFDIR@/data/testrt
#charset_type= utf-8
#
#rt_field= title
#rt_field= content
#rt_attr_uint= gid
#}
indexer
{
mem_limit= 32M
}
searchd
{
listen= 9312
listen= 9306:mysql41
log= D:/sphinx/log/searchd.log
query_log= D:/sphinx/log/query.log
read_timeout= 5
max_children= 30
pid_file= D:/sphinx/log/searchd.pid
max_matches= 1000
#seamless_rotate= 1
preopen_indexes= 0
unlink_old= 1
workers= threads # for RT to work
}
4、修改配置,参数说明如下:
Source部分配置项说明
#type 数据库类型,目前支持mysql与pgsql
#strip_html 是否去掉html标签
#sql_host 数据库主机地址
#sql_user 数据库用户名
#sql_pass 数据库密码
#sql_db 数据库名称
#sql_port 数据库采用的端口
#sql_query_pre 执行sql前要设置的字符集,用utf8必须SET NAMES utf8
#sql_query 全文检索要显示的内容,在这里尽可能不使用where或group by,将where与groupby的内容交给sphinx,由sphinx进行条件过滤与groupby效率会更高
#注意:select 出来的字段必须至少包括一个唯一主键(ARTICLESID)以及要全文检索的字段,你计划原本在where中要用到的字段也要select出来
#这里不用使用orderby
#sql_attr_开头的表示一些属性字段,你原计划要用在where,orderby,groupby中的字段要在这里定义
#根据我们原先的SQL:
#select * from eht_articles where title like ? and catalogid=? And edituserid=? And addtime between ? and ? order by hits desc
#我们需要对catalogid,edituserid,addtime,hits进行属性定义(这四个字段也要在select的字段列表中),定义时不同的字段类型有不同的属性名称,具体可以见sphinx.conf.in中的说明
index部分配置项说明
#source 数据源名
#path 索引记录存放目录,如d:/sphinx/data/cgfinal,实际存放时会存放在d:/sphinx/data目录,然后创建多个cgfinal名称,不同扩展名的索引文件。
#其他的配置如min_word_len,charset_type,charset_table,ngrams_chars,ngram_len这些则是支持中文检索需要设置的内容。
#如果检索的不是中文,则charset_table,ngrams_chars,min_word_len就要设置不同的内容,具体官方网站的论坛中有很多,大家可以去搜索看看。
5、将安装包中的“example.sql”文件导入到test库中
6、注册系统服务
写道
D:\Sphinx\bin> D:\Sphinx\bin\searchd --install --config D:\Sphinx\sphinx.conf --servicename SphinxSearch
7、启动服务
8、我在启动服务的时候出错,在网上找了一下,解决方法如下:
写道
# 先停掉SphinxSearch服务,或直接杀进程,要保证log/searchd.pid文件的一致性
indexer.exe --all # 重建所有索引,可以看到xxx.sph文件又回来了
searchd.exe # 启动searchd服务
indexer.exe --all --rotate # 试试用rotate命令重建索引
|
|
|