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 ...
随机推荐
- jquery实现导航栏跟随窗口滚动
最近在制作一个模版的时候用到的一个jquery插件,当网站导航滚动到当前可见页面顶部时,固定在顶部并随窗口滚动,有很多的网站前台模版有有类似的效果. smohan.fixednav.js /* * 随 ...
- 获取和设置tinyMCE 4编辑器的内容
对于tinymce编辑器是无法通过js进行内容的读写的,必须使用编辑器自身的方法才行,下面是一些方法,希望能对用到的朋友有所帮助: 1.如果当前页面只有一个编辑器: 获取内容:tinyMCE.acti ...
- tarjan算法--求无向图的割点和桥
一.基本概念 1.桥:是存在于无向图中的这样的一条边,如果去掉这一条边,那么整张无向图会分为两部分,这样的一条边称为桥无向连通图中,如果删除某边后,图变成不连通,则称该边为桥. 2.割点:无向连通图中 ...
- BIEE 仪表盘的创建
1.新建仪表盘 选择共享文件夹里创建的表拖到仪表盘中 保存并运行 也可以新建更多仪表盘页 2.新建仪表盘提示 把提示和表都拖到仪表盘中 3.主从关系:第二张表的结果页面 ——>编辑视图——&g ...
- BZOJ-1822 Frozen Nova 冷冻波 计(jie)算(xi)几何+二分+最大流判定+经典建图
这道逼题!感受到了数学对我的深深恶意(#‵′).... 1822: [JSOI2010]Frozen Nova 冷冻波 Time Limit: 10 Sec Memory Limit: 64 MB S ...
- POJ1364 King
Description Once, in one kingdom, there was a queen and that queen was expecting a baby. The queen p ...
- 找出进程中各线程cpu消耗情况
以root用户执行以下命令,以PID 5423举例: 1,根据top命令,找到占用CPU高的进程,找到PID PID USER PR NI VIRT RES SHR S %CPU ...
- insert 多个values
INSERT INTO `user_mail_attach` VALUES(, , , , , ), (, , , , , ); 这种比写多条insert语句效率高
- python numpy 教程
http://blog.chinaunix.net/uid-21633169-id-4408596.html
- 三大框架ssh
一.hibernate a.实体类+映射 b.lib hibernate包+oracle包(oracle安装里找) 映射:从类入手class+属性 a.映射的头文件在:hibernate3.jar- ...