关于Sphinx中使用 RealTime Index的问题

我们有了完整索引和增量索引,为什么还需要研究实时索引?

1、完整索引每个晚上空闲时执行一次,时间较长,但问题不大,因为IO慢,CPU累,但那个时间段基本没有人使用平台,比如凌晨2点。

2、增量索引:目前我们有些需求要求增加的资源要马上在列表中能看到,这里有两个问题,第一个是我们采用的是异步写入数据库队列,不保证这边写入了,那么一定马上写入到数据库中。

第二是就算写入到数据库中,我们的增量索引的间隔期是2秒,再加上真正生成索引的时间,比如0.5秒,就是说写入到数据库后需要2.5的时间才能保证用户看到,我们需要在界面上显示保存中的进度条,这一点有时让人很不爽。那该如何处理呢?比如异步写入队列,我们可以开多队列,比如4个队列监控,同时向数据库中写入,这些就是4线程并发写入,肯定能提高写入速度,而且4个也不多,MYSQL也能顶的住,就算是4个不够了,也可以后期采用多MASTER写入方案,写入不是主要问题。但增量索引是2秒一重建,不能要求0.1秒重建吧?

这时研究实时索引就很有意义了:

1、实时索引是如何工作的,原理是什么?2、实时索引怎么配置,做好测试工作。3、实时索引存在什么问题,我们应如何应对?4、评估我们现在的增量索引是否有必要转为实时索引?还是结果是实时还不成熟,不宜转入?

参考链接:http://blog.sina.com.cn/s/blog_54ef398901017u8w.html
时间: 2024-12-11 17:43:56

关于Sphinx中使用 RealTime Index的问题的相关文章

sphinx中复合属性字段sql_attr_multi的用法

sphinx中复合属性字段sql_attr_multi的用法 sql_attr_multi在sphinx可以用来检索有层级关系的数据,效率相当高,如,在数据库中用一个4层的分类,分类下对应着不用的文章,现在需要做一个文章列表,要求,选择第一级分类时属于它的子分类的文章也要显示出来,就可以用下面的方法建索引 sql_query=                 SELECT di.company_document_id as id,di.company_document_id,          

coreseek/sphinx中的匹配模式

所谓匹配模式就是用户如何根据关键字在索引库中查找相关的记录. SPH_MATCH_ALL, 匹配所有查询分词(默认模式); 如"手机配件",不匹配 "我有一部手机",但可以匹配 "手机坏了,需要找配件". 因为"手机配件" 被分成 "手机","配件"两个词,匹配条件是必须同时包含这两个词,所以"我有一部手机"不符合匹配要求. SPH_MATCH_ANY, 匹配查询词中

CI路径中如何去掉index.php

apache去掉index.php 1.编辑conf/httpd.conf配置文件 #LoadModule rewrite_module modules/mod_rewrite.so 把该行前的#去掉 同时对应Directory下要配置 AllowOverride All 2.在 CI 根目录下(即在index.php,system的同级目录下)新建立一个配置文件,命名为: .htaccess 内容如下: RewriteEngine On RewriteCond %{REQUEST_FILENA

git提交过程中遇到的 index.lock 问题导致无法提交的解决方法

在提交代码的过程中,可能会遇到下面的问题: fatal: Unable to create 'C:/programLists/zzw-q1/.git/index.lock': File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is

数据库中的索引Index

索引就像一本书的目录,而书中的索引是对一个词语的列表,其中注明了包含各个词的页码.数据库中的索引 是某一个表中一列或者若干列值的集合和相应的只想表中物理标识这些值的数据页的逻辑指针清单. 索引的作用: 1.通过创建唯一索引,可以保证数据记录的唯一性: 2.可以大大的加快数据检索的速度: 3.可以加速表与表之间的连接: 4.在使用ORDER BY 和GROUP BY 子句中进行检索数据是,可以显著减少查询中分组和排序的时间: 5.使用索引可以在检索数据的过程中使用优化隐藏器,提高系统性能: 索引分

Oracle中synonym和index

笔记: Oracle-同义词--通过用户名(模式名).表名       --授权:grant create synonym to test1(system用户下授权))     --私有  create or replace synonym sy_test1 for gcs95.test1;  --共有  create public synonym public_sy_test1 for gcs95.test1;  /*私有:其他用户无法访问*/  select * from sy_test1;

MVC中 _ViewStart _Layout Index三个页面中的加载顺序

MVC学习中忽然想到一个问题.. 在访问一个Index.cshtml页面时, MVC的加载顺序是怎么样的呢? 首先说下我的结论 1. _ViewStart.cshtml 2. Index.cshtml 3. _Layout.cshtml 经过实验认为 http://www.byywee.com/page/M0/S957/957632.html 给出的结论是错误的. 若有不同意见的道友请留言辩驳..不胜荣幸 论述我的观点和实验过程: 经过了解 _ViewStart.cshtml页面指定谁是模板页

Resellerclub –Cpanel 主机中如何设置 index 缺省首页

管理面板,点击[文件管理器],如图: ],如图 1. 进入 cPanel 管理面板,点击[文件管理器],如图: 选中[主目录] 显示隐藏文件],如图: ],如图 2. 选中[主目录]和[显示隐藏文件],如图: 点击[public_html],此时看见右侧文件中有一个名为[.htaccess]的文件,如图: ],此时看见右侧文件中有一个名为 3. 点击[public_html],此时看见右侧文件中有一个名为[.htaccess]的文件,如图: 注:如果没有[.htaccess]文件,请自己新建一个

ThinkPHP中如何隐藏index.php

一.修改apache中httpd.conf文件 1. 找到#LoadModule rewrite_module modules/mod_rewrite.so,将前面"#"去掉: 2.找到所有AllowOverride None,将其改为AllowOverride All: 二.在自己项目中修改配置文件(Con/config.php),修改URL模式为2 'URL_MODEL'             => 2,       // URL访问模式,可选参数0.1.2.3,代表以下四