配置文件 /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的目錄中有三個(gè)目錄 分別為bin etc var
bin中 存有sphinx用到的一些執(zhí)行文件 包括 indexer 索引建立 search 查詢工具 searchd 查詢服務(wù)器 等
索引的建立方法為
indexer –config /usr/local/sphinx/etc/sphinx.conf test test為資源名稱 不寫為默認(rèn)所有都建立索引
附:
建立索引期間可能由于不同版本的數(shù)據(jù)庫導(dǎo)致indexer找不到共享庫libmysqlclient.so.16
需要把/usr/local/mysql/lib/mysql/libmysqlclient.so.16.0.0 這個(gè)文件復(fù)制到/usr/lib下 或者作軟連接即可
6 查詢服務(wù)器
searchd –config /usr/local/sphinx/etc/sphinx.conf 為開啟
searchd –config /usr/local/sphinx/etc/sphinx.conf –stop 為關(guān)閉
7 查詢
sphinx的查詢 可以大致分為三種
1 數(shù)據(jù)庫引擎中的查詢 這里不作介紹 官方文檔已經(jīng)很清楚
2 通過search工具查詢
./search –config ../etc/sphinx.conf 你好
3 通過php的接口查詢 詳見sphinxapi.php