官方文档有很多疏漏,故此多方尝试,将正确的贴出来:
1、bin/csft_mysql.conf:
#源定义
source mysql
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass = merry05
sql_db = test
sql_port = 3306
sql_query_pre = SET NAMES utf8
sql_query = SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title,content FROM documents
#sql_query第一列id需为整数
#title、content作为字符串/文本字段,被全文索引
sql_attr_uint = group_id #从SQL读取到的值必须为整数
sql_attr_timestamp = date_added #从SQL读取到的值必须为整数,作为时间属性
sql_query_info = SELECT * FROM documents WHERE id=$id #命令行查询时,从数据库读取原始数据信息
sql_query_post_index = REPLACE INTO counter (uid,maxid) VALUES (1,$maxid)
}
#index定义
index mysql
{
source = mysql #对应的source名称
path = var/data/mysql
docinfo = extern
mlock = 0
morphology = none
min_word_len = 1
html_strip = 0
charset_dictpath = etc/ #Windows环境下设置,/符号结尾
charset_type = zh_cn.utf-8
#charset_table=……
ngram_len=0
}
source delta:mysql
{
sql_query_pre = SET NAMES utf8
sql_query = SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title,content FROM documents WHERE id>(SELECT maxid FROM counter WHERE uid=1)
}
#增量索引
index delta:mysql
{
source = delta #对应的source名称
path = var/data/mysql_delta #这里的path要与mysql不一样,不然会运行时错误,进程强制退出
}
#全局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 = var/log/searchd_mysql.pid
log = var/log/searchd_mysql.log
query_log = var/log/query_mysql.log
}
注解:mysql为主索引,delta为增量索引
2、进行索引
bin/indexer -–config etccsft_mysql.conf mysql
3、启动searchd进程
bin/searchd --config etccsft_mysql.conf –-pidfile
注解:–pidfile这个选项一定要添加,强制生成pid,不然在合并索引时会报pid文件无法打开错误(这项非常重要)
4、生成增量索引
bin/indexer –-config etccsft_mysql.conf delta -–rotate
5、主索引和增量索引合并
bin/indexer –-config etccsft_mysql.conf -–merge mysql delta -–rotate
在searchd进程运行时–-rotate选项一定要添加,详见文档
如果要在合并,将某些文档移出索引时,需要:
bin/indexer –-config etccsft_mysql.conf -–merge mysql delta -–rotate -–merge-dst-range group_id 2 2
注解:-–merge-dst-range是合并生成主索引的范围开关;这句的意思是只有主索引的group_id属性为2,并且子索引的group_id属性为2,才能被合并生成;否则会被过滤掉,移出主索引。
过滤器可以多个,并且全部满足时才能在最终合并的索引出现
分享到:
相关推荐
Sphinx的安装过程涉及多个方面,包括选择支持的操作系统、安装必要的工具、配置环境变量、以及如何在不同的操作系统(如Linux、BSD、Windows)上安装。安装过程中可能会遇到一些问题,文档中也提供了一些已知问题的...
总的来说,Coreseek结合Sphinx为Windows用户提供了一个强大的全文检索解决方案,尤其是在中文环境下的搜索功能。尽管其安装和配置可能需要一定的技术背景,但考虑到其提供的性能和灵活性,对于那些需要高效、准确...
在Windows环境下安装CoreSeek4.1时,我们需要了解几个关键组件:搜索守护进程(searchd)和构建索引工具(indexer)。searchd负责处理客户端的搜索请求,管理索引,并提供实时搜索服务。indexer则是用于创建和更新...
它结合了Sphinx搜索引擎的强大性能和CoreSeek的中文处理能力,使得在中文环境下进行信息检索变得更为便捷。 Sphinx是一个开源全文搜索引擎,它拥有快速的索引速度和低内存占用,支持实时索引和多种数据源。CoreSeek...
在Windows环境下搭建Sphinx 2.2.11与CoreSeek 3.1搜索引擎系统是一项技术性较强的任务,尤其对于初次接触全文检索引擎的人来说。本文将详细介绍这两个组件的安装过程,以及如何进行简单的PHP集成与调试。 Sphinx是...
#### 二、Windows 平台上安装和使用 Sphinx/Coreseek ##### 2.1 获取文件 - **Coreseek**:从官方网站 [www.coreseek.cn](http://www.coreseek.cn/) 获取最新版本的Coreseek,截至撰写本文时,版本为coreseek-4.1...
在部署CoreSeek时,你需要按照官方文档或教程进行操作,包括安装、配置、创建索引、连接数据库(通常与MySQL结合使用)以及测试搜索功能。此外,理解并掌握CoreSeek的配置参数和命令行工具是至关重要的,这能帮助你...
这个版本包含了所有必要的文件,以便在Windows环境下搭建和运行CoreSeek服务。以下是对这个版本中可能包含的一些关键知识点的详细解释: 1. **中文分词**:中文分词是中文信息处理中的重要步骤,因为中文没有像英文...
- **实时索引更新**:允许在不重建整个索引的情况下更新文档。 4. **搜索** - **匹配模式**:支持模糊匹配、精确匹配等多种模式。 - **布尔查询语法**:允许使用AND、OR、NOT等操作符构造复杂查询。 - **扩展...
- `coreseek-4.1-win32` 文件是 CoreSeek 的 Windows 版本,CoreSeek 是 Sphinx 在中国的分支,它包含了一些中文分词的支持,适合国内用户使用。 - `sphinx` 文件可能是 Sphinx 的源代码或者二进制包,用于在非 ...
4. **实时更新**: CoreSeek支持实时索引更新,这意味着数据一旦发生变化,搜索结果会立即反映这些变化,确保信息的时效性。 5. **API接口**: CoreSeek 提供了多种编程语言的API接口,如PHP、Python、Java等,方便...
在本案例中,我们讨论的是CoreSeek的4.1版本,特别针对Windows 32位系统的安装包。 CoreSeek的核心组件包括MMseg分词器和Sphinx搜索引擎。MMseg(Maximum Matching Segmentation)是一种高效的中文分词算法,能够...
1. **系统兼容性**:确保你的系统是Windows 10 64位,因为提供的版本是coreseek-4.1-win32,针对的是32位系统,但通常在64位系统下也能正常运行。 2. **环境配置**:在安装前,检查系统是否已经安装了必要的依赖,...
例如,在Windows环境下可以选择Coreseek Win32通用版本;在Linux环境下,则可以下载源码包自行编译安装。 2. **解压缩并安装**:将下载好的文件解压缩到指定位置,如E盘根目录,并将目录重命名为Coreseek。至此,...