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 ...
随机推荐
- zoj3888 找第二大
题目简化后最终要求的就是第二大的数.但是由于数据较大,不能直接求.可以先预处理,求出所有情况. #include<stdio.h> #include<string.h> #in ...
- 【UVA 1583】Digit Generator
题 题意 a加上 a的各位数=b,则b是a的digitSum,a是b的generator,现在给你digitSum,让你求它的最小的generator. 分析 一种方法是: 预处理打表,也就是把1到1 ...
- str内部方法
代码 #str内部功能 name=' aK am\til.L iu' age=18 num=-11 ab='#' ac=('1','2','3','4','5','6','7') print(dir( ...
- BZOJ-1013 球形空间产生器sphere 高斯消元+数论推公式
1013: [JSOI2008]球形空间产生器sphere Time Limit: 1 Sec Memory Limit: 162 MB Submit: 3662 Solved: 1910 [Subm ...
- .net 代码风格规范
声明:内容非原创,转自张子阳博客. 对于为什么是转载,唯一原因就是这东西居然比我整理的好,直接用得了. 1. C# 代码风格要求 1.1注释 类型.属性.事件.方法.方法参数,根据需要添加注释. 如果 ...
- C++用new和不用new创建类对象区别
new创建类对象,使用完后需使用delete删除,跟申请内存类似.所以,new有时候又不太适合,比如在频繁调用场合,使用局部new类对象就不是个好选择,使用全局类对象或一个经过初始化的全局类指针似乎更 ...
- H2嵌入式数据库
一 H2 数据库 官网地址. http://www.h2database.com/html/cheatSheet.html
- jsp------实现MD5加密
index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UT ...
- boost(barrier)
barrier:栅栏的意思,当barrier bar(3),这三个线程会放到栅栏中,等第三个线程执行时一起唤醒,然后返回 barrier barrier类的接口定义如下: class barrier ...
- Laravel教程 八:queryScope 和 setAttribute
Laravel教程 八:queryScope 和 setAttribute 此文章为原创文章,未经同意,禁止转载. Laravel Eloquent Database 直接就是按照上一节所说的那样,我 ...