Sphinx配置搜索

                       Sphinx配置文档

一、安装

1.先安装autoconf-2.64.tar.bz2

 

tar -jxvf autoconf-2.64.tar.bz2

cd autoconf-2.64

./configure

make

make install

 

2.安装GCC

自动安装(也可手动安装,我装失败了)

   yum -y install gcc

   yum -y install gcc-c++

 

3.安装 m4-1.4.1.tar.gz

tar xzvf m4-1.4.1.tar.gz

cd m4-1.4.1

./configure

make

make install

----------

tar jxvf gmp-6.0.0a.tar.bz2

----------

tar xzvf mpfr-3.1.2.tar.gz

----------                     

tar xzvf mpc-0.8.1.tar.gz              

错误直接忽略,不知道那些必要装,我成功前3个就不报错

 

 

4.安装automake-1.10.3.tar.bz2

 

5.安装libtool-1.5.22.tar.gz

 

以上配置完成后,就可以安装sphinx了

 

6.   安装mmseg(coreseek所使用的词典)

tar xzvf coreseek-3.2.14.tar.gz

cd mmseg-3.2.14

./bootstrap    #输出的warning信息可以忽略,如果出现error则需要解决

./configure --prefix=/usr/local/mmseg3

make && make install

cd ..

 

7.   安装coreseek(sphinx)

cd csft-3.2.14

sh buildconf.sh    #输出的warning信息可以忽略,如果出现error则需要解决

./configure--prefix=/usr/local/coreseek --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/--with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql

make && make install

cd ..

二、修改配置文件

#MySQL数据源配置,详情请查看:http://www.coreseek.cn/products-install/mysql/

#请先将var/test/documents.sql导入数据库,并配置好以下的MySQL用户密码数据库

 

#源定义

 

source mysql

{

   type                    = mysql

 

   sql_host                =localhost

   sql_user                = root

   sql_pass                =mysql2014

   sql_db                  = td_all

   sql_port                = 3306

    sql_query_pre           = SET NAMES utf8

 

   sql_query               = SELECTdistinct TID,TID as temp_id, C_Series,C_OEMName FROM t_carmodels where TID>=$start AND TID<=$end

                                                             #sql_query第一列id需为整数

                                                             #title、content作为字符串/文本字段,被全文索引

   sql_query_range         =SELECTMIN(TID),MAX(TID) FROM t_carmodels

   sql_range_step          =500

   sql_ranged_throttle     =0

   #sql_attr_uint           = temp_id       #从SQL读取到的值必须为整数

   #sql_attr_timestamp      =date_added #从SQL读取到的值必须为整数,作为时间属性

 

   sql_query_info_pre      = SETNAMES utf8                                        #命令行查询时,设置正确的字符集

   sql_query_info          = SELECTC_Series,C_OEMName FROM t_carmodels WHERE TID=$id #命令行查询时,从数据库读取原始数据信息

}

 

#index定义

 

index mysql

{

   source            = mysql             #对应的source名称

   path              =/usr/local/coreseek/carmodels/var_carmodels/data/mysql #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

   docinfo           = extern

   mlock             = 0

   morphology        = none

   exceptions       =/usr/local/coreseek/carmodels/var_carmodels/data/exceptions.txt

   min_word_len        = 1

   html_strip                = 0

 

    #中文分词配置,详情请查看:http://www.coreseek.cn/products-install/coreseek_mmseg/

   charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux环境下设置,/符号结尾

   #charset_dictpath = etc/                             #Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/...

   charset_type        = zh_cn.utf-8

}

 

#全局index定义

indexer

{

   mem_limit            = 128M

}

 

#searchd服务定义

searchd

{

   listen                  =   9314

   read_timeout        = 5

   max_children        = 30

   max_matches            = 10000

   seamless_rotate        = 0

   preopen_indexes        = 0

   unlink_old            = 1

   pid_file =/usr/local/coreseek/carmodels/var_carmodels/log/searchd_mysql.pid  #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

   log =/usr/local/coreseek/carmodels/var_carmodels/log/searchd_mysql.log        #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

   query_log =/usr/local/coreseek/carmodels/var_carmodels/log/query_mysql.log #请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

}

三、Sphinx管理

1、生成索引:

/usr/local/coreseek/bin/indexer -c/usr/local/coreseek/etc/csft_mysql.conf --mysql(配置文件中的索引名称) 

生成全部索引:

/usr/local/coreseek/bin/indexer -c/usr/local/coreseek/etc/csft_mysql.conf  --all

若此时searchd守护进程已经启动,那么需要加上—rotate参数

/usr/local/coreseek/bin/indexer-c /usr/local/coreseek/partsname/etc_partsname/csft_mysql.conf --all --rotate

2、使用search命令在命令行对索引进行检索

/usr/local/coreseek/bin/search -c/usr/local/coreseek/etc/csft_mysql.conf -a 字段

 

3、启动searchd守护进程(提供API使用)

 

/usr/local/coreseek/bin/searchd-c /usr/local/coreseek/etc/csft_mysql.conf

关闭进程

/usr/local/coreseek/bin/searchd -c/usr/local/coreseek/etc/csft_mysql.conf --stop

 

4、生成Sphinx中文分词词库(新版本的中文分词库已经生成在了/usr/local/mmseg3/etc目录下)

/usr/local/mmseg3/bin/mmseg  -u /usr/local/mmseg3/etc/unigram.txt

配置增量索引

#索引合并

 

/usr/local/coreseek/bin/indexer-c /usr/local/coreseek/partsname/etc_partsname/csft_mysql.conf --merge  mysql delta

 

#合并移除与原来重复的

/usr/local/coreseek/bin/indexer-c /usr/local/coreseek/partsname/etc_partsname/csft_mysql.conf --merge  mysql delta --merge-dst-range deleted 0 0

 

该命令执行后,将会在unigram.txt所在目录中产生一个名为unigram.txt.uni的文件,将该文件改名为uni.lib,完成词典的构造。需要注意的是,unigram.txt需要预先准备,并且编码格式必须为UTF-8编码。

 

对特殊短语的支持

/usr/local/mmseg3/bin/mmseg –b  /usr/local/mmseg3/etc/exceptions.txt

其中, 开关'-b'指示mmseg是要构造特殊短语词库;exceptions.txt是用户编辑的特殊短语转换规则。该命令执行后,将在当前目录下产生一个名为"synonyms.dat"的文件,将该文件放在"uni.lib"同一目录下,分词系统将自动启动特殊短语转换功能。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值