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

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

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

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有一半的时间做一个主索引

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117763.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【高级】PHP-FPM和Nginx的通信机制

    【高级】PHP-FPM和Nginx的通信机制

    2021年11月6日
    36
  • jQuery css3鼠标悬停图片显示遮罩层动画特效

    jQuerycss3鼠标悬停图片显示遮罩层动画特效效果体验:http://hovertree.com/texiao/jquery/39/效果图:源码下载:http://hovertree.com

    2021年12月22日
    40
  • python 之字符编码

    一了解字符编码的储备知识python解释器和文件本编辑的异同相同点:python解释器是解释执行文件内容的,因而python解释器具备读py文件的功能,这一点与文本编辑器一样不同点:文本编辑器

    2022年3月29日
    49
  • app设计ui规范2020_ios系统ui设计规范

    app设计ui规范2020_ios系统ui设计规范1.设计稿与切片稿a.尺寸设计稿:iPhone6750*1334【2倍】切图稿:iPhone62208*1242【3倍】Android1920*1080设计稿选择750*1334px的原因:IOS:向上和向下适配的时候界面调整的幅度最小,最方便适配Android:设计时只需做最小的设计调整,提升设计效率b.切图IOS切图——3份:………

    2022年8月13日
    5
  • VLAN的特点及作用_vlan特点和作用有哪些

    VLAN的特点及作用_vlan特点和作用有哪些VLAN的作用:把同一物理局域网内的不同用户逻辑地划分成不同的广播域,有助于控制流量、减少设备投资、简化网络管理、提高网络的安全性。VLAN的特点:1)区段化:将一个网络进行区段化,减少每个区段的主机数量,提高网络性能;2)灵活性:一般情况下无须更改物理网络与增加新设备及更改布线系统;3)安全性:VLAN间的通讯是在受控的方式下完成的。转载于:https://www.cnb…

    2022年8月10日
    3
  • Python如何生成随机数_产生随机数的常用方法

    Python如何生成随机数_产生随机数的常用方法Python生成随机数的方法这篇文章主要介绍了Python生成随机数的方法,有需要的朋友可以参考一下如果你对在Python生成随机数与random模块中最常用的几个函数的关系与不懂之处,下面的文章就是对Python生成随机数与random模块中最常用的几个函数的关系,希望你会有所收获,以下就是这篇文章的介绍。random.random()用于生成用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a>b,则生成随机数 1 n:

    2022年10月4日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号