对于一般的数据库全文搜索应用,sphinx还是非常好用的。
搜了几篇文章,对中文的搜索基本上可以归结为2种方法
1,使用coreseek.cn的修改版. 支持中文的分词索引
2,blog.s135.com的方法,中文使用一元索引。在查询分析的时候,再使用中文分词,将词组写在查询语法里。这种方法比较简单,不hack原代码,而且分词也可以选择自己熟悉的方式。不过只支持utf8.(这样才能把单个汉字分出来建索引)
配置成功,记录下来
搜了几篇文章,对中文的搜索基本上可以归结为2种方法
1,使用coreseek.cn的修改版. 支持中文的分词索引
2,blog.s135.com的方法,中文使用一元索引。在查询分析的时候,再使用中文分词,将词组写在查询语法里。这种方法比较简单,不hack原代码,而且分词也可以选择自己熟悉的方式。不过只支持utf8.(这样才能把单个汉字分出来建索引)
配置成功,记录下来
#
# Minimal Sphinx configuration sample (clean, simple, functional)
#
# 索引源 和 索引配置
source ts_ask
{
type = mysql
sql_host = 127.0.0.1
sql_user = root
sql_pass =
sql_db = kmp
sql_port = 3306
sql_query_pre = SET NAMES utf8
sql_query = SELECT askId,uid,uname,title,infoId,cTime,readCount,status,type,digCount FROM ts_ask
sql_attr_timestamp = cTime
sql_attr_uint = uid
sql_attr_uint = readCount
sql_query_info = SELECT * FROM ts_ask WHERE askId=$id
}
index ts_ask
{
source = ts_ask
path = E:/sphinx/index/ts_ask
docinfo = extern
mlock = 0
morphology = none
html_strip = 1
min_word_len = 1
charset_type = utf-8
charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
ngram_len = 1
ngram_chars = U+3000..U+2FA1F
}
# 全局配置
indexer
{
mem_limit = 32M
}
searchd
{
address = 127.0.0.1
port = 3312
log = E:/sphinx/log/searchd.log
query_log = E:/sphinx/log/query.log
read_timeout = 5
max_children = 30
pid_file = E:/sphinx/log/searchd.pid
max_matches = 1000
# seamless_rotate = 0
preopen_indexes = 0
unlink_old = 1
}