Coreseek:部门查询和增量索引代替实时索引

1.行业调查

索引系统需要通过主查询来获取所有的文档信息,一个简单的实现是整个表的数据到内存,但是这可能会导致整个表被锁定,并且使其它操作被阻止(例如:在MyISAM格款式上INSERT操作)。同时,会浪费大量的内存来存储查询结果。喜欢它的问题。 为了避免出现这样的情况。CoreSeek/Sphinx支持一种被称为 区段查询的技术. 首先,CoreSeek/Sphinx从数据库中取出文档ID的最小值和最大值。将由最大值和最小值定义自然数区间分成若干份,一次获取数据。建立索引。现举比例如以下:

sql_query_range	= SELECT MIN(id),MAX(id) FROM documents
sql_range_step = 1000
sql_query = SELECT * FROM documents WHERE id>=$start AND id<=$end

仅仅要在配置文件中面写三条语句就可以

from后面要跟的是你数据库里面的表名,如这里的表就是document

2.增量索引取代实时索引

有这么一种常见的情况:整个数据集很大,以至于难于常常性的重建索引,可是每次新增的记录却相当地少。一个典型的样例是:一个论坛有1000000个已经归档的帖子,但每天仅仅有1000个新帖子。

在这样的情况下能够用所谓的“主索引+增量索引”(main+delta)模式来实现“近实时”的索引更新。

这样的方法的基本思路是设置两个数据源和两个索引,对非常少更新或根本不更新的数据建立主索引。而对新增文档建立增量索引。在上述样例中,那1000000个已经归档的帖子放在主索引中,而每天新增的1000个帖子则放在增量索引中。增量索引更新的频率能够非常快,而文档能够在出现几分种内就能够被检索到。

确定详细某一文档的分属那个索引的分类工作能够自己主动完毕。

一个可选的方案是,建立一个计数表,记录将文档集分成两部分的那个文档ID,而每次又一次构建主索引时,这个表都会被更新。

分辨要在mysql里建表,然后改动配置文件

# in MySQL
CREATE TABLE sph_counter
(
    counter_id INTEGER PRIMARY KEY NOT NULL,
    max_doc_id INTEGER NOT NULL
);

# in sphinx.conf
source main
{
    # ...
    sql_query_pre = SET NAMES utf8
    sql_query_pre = REPLACE INTO sph_counter SELECT 1, MAX(id) FROM documents
    sql_query = SELECT id, title, body FROM documents         WHERE id<span style="color:#ff0000;"><=</span>( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 )
}

source delta : main
{
    sql_query_pre = SET NAMES utf8
    sql_query = SELECT id, title, body FROM documents         WHERE id<span style="color:#ff0000;">></span>( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 )
}

index main
{
    source = main
    path = /path/to/main
    # ... all the other settings
}

# note how all other settings are copied from main,
# but source and path are overridden (they MUST be)
index delta : main
{
    source = delta
    path = /path/to/delta
}

写好之后,还要写两个批处理文件,一个做增量索引。一个合并索引。

增量索引:g:/service/coreseek/bin/indexer  -c g:/service/coreseek/etc/csft_mysql.conf   --rotate main_delta

合并索引:g:/service/coreseek/bin/indexer  -c g:/service/coreseek/etc/csft_mysql.conf  --merge main main_delta --rotate

写完后。既然后把该任务计划,几乎是同一5几分钟做一个增量索引,每天1有一半的时间做一个主索引

时间: 2024-10-12 20:33:42

Coreseek:部门查询和增量索引代替实时索引的相关文章

Coreseek:区段查询及增量索引代替实时索引

1.区段查询 索引系统需要通过主查询来获取全部的文档信息,一种简单的实现是将整个表的数据读入内存,但是这可能导致整个表被锁定并使得其他操作被阻止(例如:在MyISAM格式上的INSERT操作),同时,将浪费大量内存用于存储查询结果,诸如此类的问题吧. 为了避免出现这种情况,CoreSeek/Sphinx支持一种被称为 区段查询的技术. 首先,CoreSeek/Sphinx从数据库中取出文档ID的最小值和最大值,将由最大值和最小值定义自然数区间分成若干份,一次获取数据,建立索引.现举例如下: sq

sphinx续5-主索引增量索引和实时索引

原文件地址:http://blog.itpub.net/29806344/viewspace-1400942/ 在数据库数据非常庞大的时候,而且实时有新的数据插入,如果我们不更新索引,新的数据就search不到,全部重新建立索引又很消耗资源,在这种情况下我们就需要使用“主索引+增量索引”的思路来实现实时更新的功能. 因为这时我们有了主索引和增量索引,主索引只需在每天凌晨更新,而增量索引的更新频率设置的很短,这样用户在搜索的时候,可以同时在这两个索引里查找. 首先创建一个计数器: 1.先在mysq

Sphinx 一般索引加实时索引

source mysql { type = mysql sql_host = 10.10.3.181 sql_user = root sql_pass = dsideal sql_db = dsideal_db sql_port = 3306 sql_sock = /usr/local/mysql/mysql.sock sql_query_pre = SET NAMES utf8 sql_query = SELECT id,resource_title,resource_type from in

coreseek实时索引全文搜索

工作流程: 安装coreseek(win32版) 建立一个实时索引配置文件 根据配置文件开启searchd服务器 向mysql数据库实时插入数据 启动python客户端访问和搜索 安装coreseek(win32版) 官网下载:http://www.coreseek.cn/products-install/install_on_windows/ 这里的版本为4.0.1 建立实时索引配置文件 解压后,在etc目录下新建一个csft_rt.conf文件 写入如下配置: #实时索引配置文件 index

sphinx (coreseek)——3、区段查询 与 增量索引实例

首先本文测试数据100多万的域名的wwwtitle 信息  检索数据: 首先建立临时表格: CREATE TABLE `sph_counter` ( `index_id` tinyint(1) NOT NULL, `max_id` int(11) NOT NULL, PRIMARY KEY (`index_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 csft.complex.conf 文件修改配置: #增量数据索引 区段查询 合并为一个文件实现 测试 配置

sphinx增量索引和主索引来实现索引的实时更新

项目中文章的信息内容因为持续有新增,而文章总量的基数又比较大,所以做搜索的时候,用了主索引+增量索引这种方式来实现索引的实时更新. 实现原理: 1. 新建一张表,记录一下上一次已经创建好索引的最后一条记录的ID 2. 当索引时,然后从数据库中取出所有ID大于上面那个sphinx中的那个ID的数据, 这些就是新的数据,然后创建一个小的索引文件 3. 把上边我们创建的增量索引文件合并到主索引文件上去 4. 把最后一条记录的ID更新到第一步创建的表中 值得注意的两点: 1)当合并索引的时候,只是把增量

sphinx实时索引和高亮显示

sphinx实时索引和高亮显示 时间 2014-06-25 14:50:58  linux技术分享 -欧阳博客 原文  http://www.wantlearn.net/825 主题 Sphinx数据库 上次介绍了coreseek与sphinx的区别,并详细记录了安装coreseek文档说明,以及给php加上sphinx模块,详细内容请参考我写的coreseek详解这篇文档,这次主要介绍sphinx是如何做到实时索引.首先配置进入到coreseek配置文件目录,对原始配置文件进行配制,这里介略说

基于lucene的案例开发:实时索引的检索

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44279753 http://www.llwjy.com/blogdetail/31bb705106379feaf6d31b58dd777be6.html 个人博客小站搭建成功,网址 www.llwjy.com,欢迎大家来吐槽~ 在前面的博客中,我们已经介绍了IndexSearcher中的检索方法,也介绍了如何基于lucene中的NRT*类去创建实时索引,在这篇博客中我们就重点介

基于lucene的案例开发:实时索引的修改

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44280311 http://www.llwjy.com/blogdetail/e42fa5c3097f4964fca0fdfe7cd7a9a2.html 个人的博客小站已经上线了,网址 www.llwjy.com,欢迎大家来吐槽~ 上一篇博客已经介绍了实时索引的检索功能,这个就相当于数据的的查询功能,我们都知道数据库的增删改查是最常用的四个功能,实时索引也是一样,他也有增删改查