基于PHP的搜索引擎Sphinx安装步骤

系统要求:

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命令重建索引
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值