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 增量索引与主索引使用测试的更多相关文章

  1. sphinx增量索引和主索引来实现索引的实时更新

    项目中文章的信息内容因为持续有新增,而文章总量的基数又比较大,所以做搜索的时候,用了主索引+增量索引这种方式来实现索引的实时更新. 实现原理: 1. 新建一张表,记录一下上一次已经创建好索引的最后一条 ...

  2. MySQL 普通索引、唯一索引和主索引

    1.普通索引 普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度.因此,应该只为那些最经常出现在查询条件(WHEREcolumn=)或排序条件(ORDERBYcolumn ...

  3. sphinx 增量索引 实现近实时更新

    一.sphinx增量索引的设置   数据库中的已有数据很大,又不断有新数据加入到数据库中,也希望能够检索到.全部重新建立索引很消耗资源,因为我们需要更新的数据相比较而言很少.例如.原来的数据有几百万条 ...

  4. Sphinx 增量索引更新

    是基于PHP API调用,而不是基于sphinxSE.现在看来sphinxSE比API调用更简单的多,因为之前没有想过sphinxSE,现在先把API的弄明白.涉及到的:sphinx 数据源的设置,简 ...

  5. sphinx 增量索引 及时更新、sphinx indexer索引合成时去旧和过滤办法(转)

    一.sphinx增量索引的设置    数据库中的已有数据很大,又不断有新数据加入到数据库中,也希望能够检索到.全部重新建立索引很消耗资源,因为我们需要更新的数据相比较而言很少.例如.原来的数据有几百万 ...

  6. sphinx增量索引使用

    sphinx在使用过程中如果表的数据量很大,新增加的内容在sphinx索引没有重建之前都是搜索不到的. 这时可以通过建立sphinx增量索引,通过定时更新增量索引,合并主索引的方式,来实现伪实时更新. ...

  7. sphinx续5-主索引增量索引和实时索引

    原文件地址:http://blog.itpub.net/29806344/viewspace-1400942/ 在数据库数据非常庞大的时候,而且实时有新的数据插入,如果我们不更新索引,新的数据就sea ...

  8. ( 转 ) mysql复合索引、普通索引总结

    对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合 ...

  9. Sphinx主索引和增量索引来实现索引实时更新的关键步骤

    1.配置csft.conf文件 vim /etc/csft.conf # # Minimal Sphinx configuration sample (clean, simple, functiona ...

随机推荐

  1. Android Launcher分析和修改9——Launcher启动APP流程

    本来想分析AppsCustomizePagedView类,不过今天突然接到一个临时任务.客户反馈说机器界面的图标很难点击启动程序,经常点击了没有反应,Boss说要优先解决这问题.没办法,只能看看是怎么 ...

  2. 网页设计师常用的PHOTOSHOP插件

    Photoshop是网页设计师常用的一个非常重要而强大的工具,可以让网页设计师的工作高效便捷的进行,也为设计师们的天马行空提供了实际技术实现.一般我们的网页设计师设计完成后,需要将其转换制作成网页形式 ...

  3. hihocoder #1034 毁灭者问题

    传送门 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在 Warcraft III 之冰封王座中,毁灭者是不死族打三本后期时的一个魔法飞行单位. 毁灭者的核心技能之一, ...

  4. ZOJ 3430 Detect the Virus

    传送门: Detect the Virus                                                                                ...

  5. android 开发问题:java.lang.ClassCastException

    java.lang.ClassCastException: libcore.net.http.HttpURLConnectionImpl cannot be cast to javax.net.ssl ...

  6. iOS项目开发知识点

    前言部分 注:本文并非绝对原创 大部分内容摘自 http://blog.csdn.net/hengshujiyi/article/details/20943045 文中有些方法可能已过时并不适用于现在 ...

  7. linux 破解版confluence安装

    OS  centos 6.5  需要的安装包如下: jre-7u67-linux-x64.rpm atlassian-confluence-5.4.4-x64.bin mysql-connector- ...

  8. Activator.CreateInstance 反射实例化对象

    public class CommonReq { private String TransNo { get; set;} public String SubmitData { get; set; } ...

  9. CSS------添加注释框

    my.html <div><a href="#" class="tip">你好<span><k>哈哈哈哈< ...

  10. xampp 安装red扩展出错解决

    Linux Mint + Xampp Error + ‘grep: /opt/lampp/include/php/main/php.h: No Such File Or Directory’ FEBR ...