sphinx 增量索引与主索引使用测试
2013年10月28日 15:01:16
首先对新增的商品建立增量索引,搜索时只使用增量索引:
array (size=1)
0 =>
array (size=6)
'gid' => string '300233' (length=6)
'weight' => string '1500' (length=4)
'comweight' => float 1
'ge' => string '70' (length=2)
'ce' => string '34' (length=2)
'mysum' => string '104' (length=3)
新商品的id: 权重:
然后重建主索引,搜索时只使用主索引:
2 =>
array (size=6)
'gid' => string '300231' (length=6)
'weight' => string '1690' (length=4)
'comweight' => float 1
'ge' => string '70' (length=2)
'ce' => string '34' (length=2)
'mysum' => string '104' (length=3)
3 =>
array (size=6)
'gid' => string '300232' (length=6)
'weight' => string '1690' (length=4)
'comweight' => float 1
'ge' => string '70' (length=2)
'ce' => string '34' (length=2)
'mysum' => string '104' (length=3)
4 =>
array (size=6)
'gid' => string '300233' (length=6)
'weight' => string '1690' (length=4)
'comweight' => float 1
'ge' => string '70' (length=2)
'ce' => string '34' (length=2)
'mysum' => string '104' (length=3)
此时,那个新商品(id:)的权重变为
再然后搜索时同时使用增量索引和主索引
$sphObj->query($keyword, 'goods,goods_zl'); 2 =>
array (size=6)
'gid' => string '300231' (length=6)
'weight' => string '1690' (length=4)
'comweight' => float 1
'ge' => string '70' (length=2)
'ce' => string '34' (length=2)
'mysum' => string '104' (length=3)
3 =>
array (size=6)
'gid' => string '300232' (length=6)
'weight' => string '1690' (length=4)
'comweight' => float 1
'ge' => string '70' (length=2)
'ce' => string '34' (length=2)
'mysum' => string '104' (length=3)
4 =>
array (size=6)
'gid' => string '300233' (length=6)
'weight' => string '1500' (length=4)
'comweight' => float 1
'ge' => string '70' (length=2)
'ce' => string '34' (length=2)
'mysum' => string '104' (length=3)
此时的结果说明:增量索引中该新商品覆盖掉了主索引中的那个商品, but why!?
然后一个有意思的测试,在查询时调换下两个索引的前后顺序(第一行代码),结果:
$sphObj->query($keyword, 'goods_zl,goods'); 2 =>
array (size=6)
'gid' => string '300231' (length=6)
'weight' => string '1690' (length=4)
'comweight' => float 1
'ge' => string '70' (length=2)
'ce' => string '34' (length=2)
'mysum' => string '104' (length=3)
3 =>
array (size=6)
'gid' => string '300232' (length=6)
'weight' => string '1690' (length=4)
'comweight' => float 1
'ge' => string '70' (length=2)
'ce' => string '34' (length=2)
'mysum' => string '104' (length=3)
4 =>
array (size=6)
'gid' => string '300233' (length=6)
'weight' => string '1690' (length=4)
'comweight' => float 1
'ge' => string '70' (length=2)
'ce' => string '34' (length=2)
'mysum' => string '104' (length=3)
结论,相同的商品在主索引和增量索引中只保留一个,根据查询语句中的顺序后者索引会覆盖掉前边索引里相同的商品(或文档)
还有诡异的事情,未完待续... ...
sphinx 增量索引与主索引使用测试的更多相关文章
- sphinx增量索引和主索引来实现索引的实时更新
项目中文章的信息内容因为持续有新增,而文章总量的基数又比较大,所以做搜索的时候,用了主索引+增量索引这种方式来实现索引的实时更新. 实现原理: 1. 新建一张表,记录一下上一次已经创建好索引的最后一条 ...
- MySQL 普通索引、唯一索引和主索引
1.普通索引 普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度.因此,应该只为那些最经常出现在查询条件(WHEREcolumn=)或排序条件(ORDERBYcolumn ...
- sphinx 增量索引 实现近实时更新
一.sphinx增量索引的设置 数据库中的已有数据很大,又不断有新数据加入到数据库中,也希望能够检索到.全部重新建立索引很消耗资源,因为我们需要更新的数据相比较而言很少.例如.原来的数据有几百万条 ...
- Sphinx 增量索引更新
是基于PHP API调用,而不是基于sphinxSE.现在看来sphinxSE比API调用更简单的多,因为之前没有想过sphinxSE,现在先把API的弄明白.涉及到的:sphinx 数据源的设置,简 ...
- sphinx 增量索引 及时更新、sphinx indexer索引合成时去旧和过滤办法(转)
一.sphinx增量索引的设置 数据库中的已有数据很大,又不断有新数据加入到数据库中,也希望能够检索到.全部重新建立索引很消耗资源,因为我们需要更新的数据相比较而言很少.例如.原来的数据有几百万 ...
- sphinx增量索引使用
sphinx在使用过程中如果表的数据量很大,新增加的内容在sphinx索引没有重建之前都是搜索不到的. 这时可以通过建立sphinx增量索引,通过定时更新增量索引,合并主索引的方式,来实现伪实时更新. ...
- sphinx续5-主索引增量索引和实时索引
原文件地址:http://blog.itpub.net/29806344/viewspace-1400942/ 在数据库数据非常庞大的时候,而且实时有新的数据插入,如果我们不更新索引,新的数据就sea ...
- ( 转 ) mysql复合索引、普通索引总结
对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合 ...
- Sphinx主索引和增量索引来实现索引实时更新的关键步骤
1.配置csft.conf文件 vim /etc/csft.conf # # Minimal Sphinx configuration sample (clean, simple, functiona ...
随机推荐
- Myeclipse-导入spring
1.导入spring事物管理类库(spring 2.0(*) AOP) 点击项目右键->Build Path->Add librarys: 打开Add Libraries对话框,然后选定 ...
- FastDFS在centos上的安装配置与使用
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题.特别适合以文件为载体的在线服务.(百 ...
- JS弹出窗口代码大全(详细整理)
1.弹启一个全屏窗口 复制代码代码如下: <html> <body http://www.jb51.net','脚本之家','fullscreen');">; < ...
- STL简单应用问题
问题: Input输入的第一行是一个整数T( 1 <= T <= 100 ),表示有几组输入数据.每组输入由4部分组成:(1)一个字典,最多包含2000个单词,每个单词一行.(2)一行字符 ...
- poj 3233 矩阵快速幂+YY
题意:给你矩阵A,求S=A+A^1+A^2+...+A^n sol:直接把每一项解出来显然是不行的,也没必要. 我们可以YY一个矩阵: 其中1表示单位矩阵 然后容易得到: 可以看出这个分块矩阵的左下角 ...
- USACO 3.2 kimbits DP
自己YY了个DP:设f[n][l]为n位数中包含不超过l个1的总个数 f[n][l]=f[n-1][l]+f[n-1][l-1] 然后用_search()从高位向低位扫描即可,tmp记录当前已记下多少 ...
- JSP/Servlet基础语法
相关学习资料 http://my.oschina.net/chape/blog/170247 http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp ...
- 代码重构-4 通用方法 用 static
只要没有用到 this.变量/方法 的,都可以用static 原代码: private string GetPeriodDesc(int lotteryPeriod) { return EnumHe ...
- html标签(一)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 动态下载 Yahoo 网络数据存入 Microsoft SQL Server 再 Matlab 调用的一个完整例子
% 编程环境: Matlab 2014a, win7 32bit, Microsoft SQL Server 2008r2 %% % 清屏 clc; clear all; close all; %% ...