sphinx 中文站内搜索

技术分享 2019-10-01 00:00:00
http://www.sphinx-search.com/https://code.google.com/p/sphinx-for-chinese/

配置文件 /usr/local/sphinx/etc/sphinx.conf#
# Minimal Sphinx configuration sample (clean, simple, functional)
#

source src1
{
type = mysql

sql_host = localhost
sql_user = XXX
sql_pass = XXX
sql_db = XXXX
sql_port = 3306 # optional, default is 3306
sql_query_pre = SET NAMES UTF8

sql_query = \
SELECT id as aid,title,addtime \
FROM archives

sql_attr_uint = aid
sql_attr_timestamp = addtime

sql_query_info = SELECT * FROM archives WHERE id=$id
}


index test1
{
source = src1
path = /usr/local/sphinx/var/data/test2
docinfo = extern
charset_type = utf-8
chinese_dictionary = /usr/local/sphinx/etc/xdict
}


indexer
{
mem_limit = 32M
}


searchd
{
listen = 9312
listen = 9306:mysql41
log = /usr/local/sphinx/var/log/searchd.log
query_log = /usr/local/sphinx/var/log/query.log
read_timeout = 5
max_children = 30
pid_file = /usr/local/sphinx/var/log/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
workers = threads # for RT to work
binlog_path = /usr/local/sphinx/var/data
}
5 索引建立

装好sphinx后在sphinx的目录中有三个目录 分别为bin etc var
bin中 存有sphinx用到的一些执行文件 包括 indexer 索引建立 search 查询工具 searchd 查询服务器 等
索引的建立方法为
indexer –config /usr/local/sphinx/etc/sphinx.conf test test为资源名称 不写为默认所有都建立索引
附:
建立索引期间可能由于不同版本的数据库导致indexer找不到共享库libmysqlclient.so.16
需要把/usr/local/mysql/lib/mysql/libmysqlclient.so.16.0.0 这个文件复制到/usr/lib下 或者作软连接即可
6 查询服务器

searchd –config /usr/local/sphinx/etc/sphinx.conf 为开启

searchd –config /usr/local/sphinx/etc/sphinx.conf –stop 为关闭
7 查询

sphinx的查询 可以大致分为三种

1 数据库引擎中的查询 这里不作介绍 官方文档已经很清楚

2 通过search工具查询
./search –config ../etc/sphinx.conf 你好

3 通过php的接口查询 详见sphinxapi.php

咨询小瓶科技
咨询我们
顶部