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. BZOJ-1861 Book 书架 Splay

    1861: [Zjoi2006]Book 书架 Time Limit: 4 Sec Memory Limit: 64 MB Submit: 1010 Solved: 588 [Submit][Stat ...

  2. BZOJ3732 Network

    Description 给你N个点的无向图 (1 <= N <= 15,000),记为:1…N. 图中有M条边 (1 <= M <= 30,000) ,第j条边的长度为: d_ ...

  3. php环境搭建工具包推荐

    如题,无论是生产还是测试环境,推荐一下这个: http://www.phpstudy.net/ 同时,也是一个php学习的网站,和w3cschool差不错,但是这里只有php.

  4. Escape Sequences

    (这篇随笔是 C++ Primer 5th ed. pp.39-40的摘录) Some characters, such as backspace or control characters, hav ...

  5. std::shared_ptr(二)

    Defined in header <memory>       template< class T > class shared_ptr;   (since C++11)   ...

  6. SpringServletContext简单案例

    一.项目结构及相应jar包,如下图 二.UserService代码 package com.hjp.service; /** * Created by JiaPeng on 2015/11/15. * ...

  7. DEEP LEARNING WITH STRUCTURE

    DEEP LEARNING WITH STRUCTURE Charlie Tang is a PhD student in the Machine Learning group at the Univ ...

  8. 织梦DedeCms网站更换域名后文章图片路径批量修改

    因为织梦上传图片用的是绝对地址,如果域名更换后,之前发布的文章的图片URL是不会跟着改变的,所以我们需要把旧域名替换成新的域名,方法很简单,有一段SQL语句更新一下文章正文内容就行. 复制下面SQL语 ...

  9. Unable to open liblaunch_sim.dylib. Try reinstalling Xcode or the simulator

    关于Xcode7 Beta报错 simulator runtime is not available. Unable to open liblaunch_sim.dylib Try reinstall ...

  10. pthread_rwlock

    读写锁   1.概述 读写锁与互斥量类似,不过读写锁允许更高的并行性.互斥量要么是锁住状态,要么是不加锁状态,而且一次只有一个线程对其加锁.读写锁可以有三种状态:读模式下加锁状态,写模式下加锁状态,不 ...