CoreSeek是基于Sphinx的全文搜索引擎,较之Sphinx增加了对中文的支持,以下是一个操作示例:
相关配置可参考Sphinx,本例在上一例基础上进行了补充,详见:http://blog.csdn.net/xwlyun/article/details/41643171
1.下载对应版本的CoreSeek(本例环境windows7),新建data、log文件夹:
2.拷贝一份示例的conf文件稍加修改,示例的conf文件在etc文件夹下,复制一份到bin文件夹下,并改名为csft.conf
大部分配置与Sphinx相同,以下是本例的conf配置(需要注意索引文件data,日志文件log的路径配置,以及CoreSeek的中文分词文件引用):
#源定义
source src_main
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass = root
sql_db = my_sphinx
sql_port = 3306
sql_query_pre = SET NAMES utf8
sql_query_range = SELECT MIN(`id`), MAX(`id`) FROM `posts`
sql_range_step = 500
sql_query = \
SELECT `id`, `title`, `content`, `user_id`, `created`, `updated` \
FROM `posts` \
WHERE `id`>=$start and `id`<=$end
sql_attr_uint = user_id
sql_attr_timestamp = created
sql_attr_timestamp = updated
}
#index定义
index idx_main
{
source = src_main
path = E:/coreseek-3.2.14/data/src_main
docinfo = extern
mlock = 0
morphology = none
min_word_len = 1
html_strip = 0
# 词典文件的目录,该目录下必须有uni.lib词典文件存在
charset_dictpath = E:/coreseek-3.2.14/etc
charset_type = zh_cn.utf-8
ngram_len = 0
}
#全局index定义
indexer
{
mem_limit = 128M
}
#searchd服务定义
searchd
{
listen = 9312
read_timeout = 5
max_children = 30
max_matches = 1000
seamless_rotate = 0
preopen_indexes = 0
unlink_old = 1
pid_file = E:/coreseek-3.2.14/log/searchd.pid
log = E:/coreseek-3.2.14/log/searchd.log
query_log = E:/coreseek-3.2.14/log/query.log
}
3.cmd中进入到 CoreSeek 安装目录的bin文件夹下,依次执行indexer.exe --all来生成所有索引文件,执行searchd.exe来开启服务
4.php程序中,引用CoreSeek安装目录中的 \api\sphinxapi.php (需要重新引用,较Sphinx的shpinxapi.php文件稍有不同), 最后尝试搜索中文来查看返回结果: