sphinx (coreseek)——3、区段查询 与 增量索引实例

首先本文测试数据100多万的域名的wwwtitle 信息  检索数据:

  • 首先建立临时表格:
CREATE TABLE `sph_counter` (
`index_id` tinyint(1) NOT NULL,
`max_id` int(11) NOT NULL,
PRIMARY KEY (`index_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
  • csft.complex.conf 文件修改配置:
#增量数据索引 区段查询 合并为一个文件实现 测试 配置文件
#数据源
source src
{
        # data source type. mandatory, no default value
        # known types are mysql, pgsql, mssql, xmlpipe, xmlpipe2, odbc
        type                    = mysql

        #####################################################################
        ## SQL settings (for ‘mysql‘ and ‘pgsql‘ types)
        #####################################################################

        # some straightforward parameters for SQL source types
        sql_host                = localhost
        sql_user                = root
        sql_pass                = 201671zhuang
        sql_db                  = whomx
        sql_port                = 3306  # optional, default is 3306
        sql_query_pre          = SET NAMES utf8
        sql_query_pre          = SET SESSION query_cache_type=OFF
        sql_query_pre          = REPLACE INTO sph_counter SELECT 1, MAX(id) FROM mx_domain_wwwinfo
        #分次查询数据,不要一次将全部数据取
        sql_query_range         = SELECT MIN(id), (SELECT max_id FROM sph_counter WHERE index_id = 1) FROM mx_domain_wwwinfo
        #每一次的 数据条数量
        sql_range_step          = 10000
        sql_query               =                 SELECT *                 FROM mx_domain_wwwinfo                 WHERE id>=$start AND id<=$end
         sql_query_info          = SELECT * FROM mx_domain_wwwinfo WHERE id=$id
}
# 表示增量数据源
source moresrc : src
{
        sql_query_pre          = SET NAMES utf8
        sql_query_pre          = SET SESSION query_cache_type=OFF
        #增量索引实现
        sql_query_range        = SELECT (SELECT max_id FROM sph_counter WHERE index_id=1),MAX(id) from mx_domain_wwwinfo
        sql_range_step          = 10000
        sql_query              =                 SELECT *                 FROM mx_domain_wwwinfo                 WHERE id>=$start AND id<=$end
        sql_query_post                  =                 REPLACE INTO sph_counter SELECT 1,MAX(id) FROM mx_domain_wwwinfo
        #获取数据后,改写sph_counter增量索引计数表中的数据
}

#其他配置参照以前
  •   更新主索引
 [email protected]:/usr/local/coreseek/bin# /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/csft.complex.conf  -all --rotate
Coreseek Fulltext 4.1 [ Sphinx 2.0.2-dev (r2922)]
Copyright (c) 2007-2011,
Beijing Choice Software Technologies Inc (http://www.coreseek.com)

 using config file ‘/usr/local/coreseek/etc/csft.complex.conf‘...
indexing index ‘src‘...
WARNING: Attribute count is 0: switching to none docinfo
collected 1500838 docs, 117.1 MB
sorted 20.5 Mhits, 100.0% done
total 1500838 docs, 117142922 bytes
total 39.557 sec, 2961363 bytes/sec, 37941.06 docs/sec
indexing index ‘moresrc‘...
WARNING: Attribute count is 0: switching to none docinfo
collected 1 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 1 docs, 21 bytes
total 0.001 sec, 13282 bytes/sec, 632.51 docs/sec
total 37 reads, 0.047 sec, 3240.3 kb/call avg, 1.2 msec/call avg
total 269 writes, 0.216 sec, 834.8 kb/call avg, 0.8 msec/call avg
rotating indices: succesfully sent SIGHUP to searchd (pid=28843).
  •  数据库mx_doimain_wwwinfo表格添加测试数据。更新增量索引
[email protected]:/usr/local/coreseek/bin# /usr/local/coreseek/bin/indexer moresrc -c /usr/local/coreseek/etc/csft.complex.conf --rotate
Coreseek Fulltext 4.1 [ Sphinx 2.0.2-dev (r2922)]
Copyright (c) 2007-2011,
Beijing Choice Software Technologies Inc (http://www.coreseek.com)

 using config file ‘/usr/local/coreseek/etc/csft.complex.conf‘...
indexing index ‘moresrc‘...
WARNING: Attribute count is 0: switching to none docinfo
collected 1 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 1 docs, 21 bytes
total 0.013 sec, 1571 bytes/sec, 74.83 docs/sec
total 2 reads, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
total 6 writes, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
rotating indices: succesfully sent SIGHUP to searchd (pid=28843).
  • 合并增量索引到主索引
[email protected]:/usr/local/coreseek/bin# /usr/local/coreseek/bin/indexer --merge src moresrc  -c /usr/local/coreseek/etc/csft.complex.conf --rotate
Coreseek Fulltext 4.1 [ Sphinx 2.0.2-dev (r2922)]
Copyright (c) 2007-2011,
Beijing Choice Software Technologies Inc (http://www.coreseek.com)

 using config file ‘/usr/local/coreseek/etc/csft.complex.conf‘...
read 11.5 of 11.5 MB, 100.0% done
merged 2268.5 Kwords
merged in 2.724 sec
total 74183 reads, 0.075 sec, 1.5 kb/call avg, 0.0 msec/call avg
total 413 writes, 0.110 sec, 253.4 kb/call avg, 0.2 msec/call avg
rotating indices: succesfully sent SIGHUP to searchd (pid=28843).
  • 测试 增量索引
[email protected]:/usr/local/coreseek/bin# ./search -c /usr/local/coreseek/etc/csft.complex.conf 济南Coreseek Fulltext 4.1 [ Sphinx 2.0.2-dev (r2922)]
Copyright (c) 2007-2011,
Beijing Choice Software Technologies Inc (http://www.coreseek.com)

 using config file ‘/usr/local/coreseek/etc/csft.complex.conf‘...
index ‘src‘: query ‘济南 ‘: returned 1000 matches of 11041 total in 0.001 sec

displaying matches:
1. document=53592, weight=1664
    id=53592
    domain_id=75937
    title=?????????????,??????,??????,?????????????????????????????????????,??????,??????,????,????,??????,??????,??????,??????,????????,????,??????,??????,??????,??????,????????,????????,?????????,?????????
    addtime=1419001556
2. document=156494, weight=1663
    id=156494
    domain_id=320070
    title=??--??????,?????,????????,????????,??????,??????,?????,?????,???,?????,?????,?????,?????,????,????,??????,??????,??????,?????,?????,?????,???,???????,
    addtime=1419041933
3. document=53624, weight=1661
    id=53624
    domain_id=74960
    title=???????-???.??.???.???????/?????/?????/?????????/?????/?????/???? ????? ????? ????? ????? ????? ????? ??POS??? ????? ????? ????? ??POS?
    addtime=1419001559
4. document=908267, weight=1661
    id=908267
    domain_id=3482035
    title=???????-???.??.???.???????/?????/?????/?????????/?????/?????/???? ????? ????? ????? ????? ????? ????? ??POS??? ????? ????? ????? ??POS?
    addtime=1421983846
5. document=1074259, weight=1659
    id=1074259
    domain_id=2805964
    title=?????? - ???? | ????? | ????? | ?????? | ?????? | ?????? | ?????? | ?????? | ?????? | ?????? | ?????? | ?????? | ?????? | ??????
    addtime=1421998317
6. document=628662, weight=1658
    id=628662
    domain_id=1603934
    title=????????|????????|?????????|?????????|??????|?????|????????????????|????????|?????????|?????????|??????|?????|????????
    addtime=1420628500
7. document=82498, weight=1656
    id=82498
    domain_id=75205
    title=???????????????????????????????????????????????????????????????????????????????????????????????????????
    addtime=1419030813
8. document=373234, weight=1656
    id=373234
    domain_id=75953
    title=????|??????|????????|??????|??????|??????|??????|??????|??????|??????|??????-????????
    addtime=1419481313
9. document=97657, weight=1655
    id=97657
    domain_id=75152
    title=????????????????????????????????????????????????????????????????????
    addtime=1419032238
10. document=108426, weight=1655
    id=108426
    domain_id=76651
    title=??????|??????|??SKF??|??NSK??|??FAG??|??NTN??|??KOYO??|??TIMKEN??|??FAG??|????|????????|????????|??????|-??
    addtime=1419033228
11. document=184337, weight=1655
    id=184337
    domain_id=75654
    title=???????|??????????|???????|??????????|??????|???????|?????????|????????|?????????|???????|??????????
    addtime=1419043496
12. document=246303, weight=1655
    id=246303
    domain_id=262037
    title=???? ?????? ?????? ?????? ????? ?????? ???? ???? ?????? ???? ??????
    addtime=1419046975
13. document=261372, weight=1655
    id=261372
    domain_id=544595
    title=??????|????|?????|?????????|???????????|??????|??????|????|?????|?????|?????|?????
    addtime=1419215630
14. document=1163692, weight=1655
    id=1163692
    domain_id=2514244
    title=??????????????????????????????????????????????????????????????????????????????_??????????????
    addtime=1422005290
15. document=1163740, weight=1655
    id=1163740
    domain_id=2514240
    title=?????????????????????????????????????????????????????????????????????????_??????????????
    addtime=1422005293
16. document=1163762, weight=1655
    id=1163762
    domain_id=2514239
    title=????????????????????????????????????????????????????????????????????????????_??????????????
    addtime=1422005295
17. document=10694, weight=1653
    id=10694
    domain_id=454049
    title=??????|??????|??????|??????|??????|?????|??????|????????|???????????|????????????|???400-070-3005
    addtime=1418996572
18. document=15876, weight=1653
    id=15876
    domain_id=66098
    title=????????? ???????????? ??????? ?????????? ??????? ??????? ????????? ??????? ??????? ???????_?????????
    addtime=1418997101
19. document=23385, weight=1653
    id=23385
    domain_id=421622
    title=????0531-82825553|??????|??????????????|????????|???????|??????|????T1|????T3|????T6|????U8
    addtime=1418997836
20. document=34628, weight=1653
    id=34628
    domain_id=320077
    title=????|?????|?????|?????|?????|?????|?????|?????|????|??????????
    addtime=1418998927

words:#起作用
1. ‘济南‘: 11041 documents, 22216 hits

index ‘moresrc‘: query ‘济南 ‘: returned 1 matches of 1 total in 0.000 sec

displaying matches:
1. document=1501042, weight=1500
    id=1501042
    domain_id=4
    title=????  ??
    addtime=

words:
1. ‘济南‘: 1 documents, 2 hits

增量索引起作用

  

时间: 2024-12-22 12:50:11

sphinx (coreseek)——3、区段查询 与 增量索引实例的相关文章

Coreseek:区段查询及增量索引代替实时索引

1.区段查询 索引系统需要通过主查询来获取全部的文档信息,一种简单的实现是将整个表的数据读入内存,但是这可能导致整个表被锁定并使得其他操作被阻止(例如:在MyISAM格式上的INSERT操作),同时,将浪费大量内存用于存储查询结果,诸如此类的问题吧. 为了避免出现这种情况,CoreSeek/Sphinx支持一种被称为 区段查询的技术. 首先,CoreSeek/Sphinx从数据库中取出文档ID的最小值和最大值,将由最大值和最小值定义自然数区间分成若干份,一次获取数据,建立索引.现举例如下: sq

sphinx (coreseek)区段查询实例

首先需要知道区段查询的定义: 索引系统需要通过主查询来获取全部的文档信息,一种简单的实现是将整个表的数据读入内存,但是这可能导致整个表被锁定并使得其他操作被阻止(例如:在MyISAM格式上的INSERT操作),同时,将浪费大量内存用于存储查询结果,诸如此类的问题吧. 为了避免出现这种情况,CoreSeek/Sphinx支持一种被称为 区段查询的技术. 首先,CoreSeek/Sphinx从数据库中取出文档ID的最小值和最大值,将由最大值和最小值定义自然数区间分成若干份,一次获取数据,建立索引.现

Coreseek:部门查询和增量索引代替实时索引

1.行业调查 索引系统需要通过主查询来获取所有的文档信息,一个简单的实现是整个表的数据到内存,但是这可能会导致整个表被锁定,并且使其它操作被阻止(例如:在MyISAM格款式上INSERT操作).同时,会浪费大量的内存来存储查询结果.喜欢它的问题. 为了避免出现这样的情况.CoreSeek/Sphinx支持一种被称为 区段查询的技术. 首先,CoreSeek/Sphinx从数据库中取出文档ID的最小值和最大值.将由最大值和最小值定义自然数区间分成若干份,一次获取数据.建立索引.现举比例如以下: s

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

项目中文章的信息内容因为持续有新增,而文章总量的基数又比较大,所以做搜索的时候,用了主索引+增量索引这种方式来实现索引的实时更新. 实现原理: 1. 新建一张表,记录一下上一次已经创建好索引的最后一条记录的ID 2. 当索引时,然后从数据库中取出所有ID大于上面那个sphinx中的那个ID的数据, 这些就是新的数据,然后创建一个小的索引文件 3. 把上边我们创建的增量索引文件合并到主索引文件上去 4. 把最后一条记录的ID更新到第一步创建的表中 值得注意的两点: 1)当合并索引的时候,只是把增量

sphinx增量索引使用

sphinx在使用过程中如果表的数据量很大,新增加的内容在sphinx索引没有重建之前都是搜索不到的. 这时可以通过建立sphinx增量索引,通过定时更新增量索引,合并主索引的方式,来实现伪实时更新.(使用定时任务,定时更新增量索引,例如10分钟一次) 在利用 Sphinx 做搜索引擎的时候,一般他的索引建立构成有如下几个部分: 固定不变的主索引 增量索引重建 索引数据合并 1.创建增量索引记录表   (记录每次增量索引创建时最大的id,下次从此id往后继续创建增量索引) create tabl

sphinx mysql 增量索引

Sphinx mysql 增量索引 一.增量索引的理解: 向一个数据表插入数据时,这些新插入的数据,就是增量了,sphinx是根据索引来查找数据的,如果索引没有更新,新增数据是查不出来的,所以我们要更新主索引,更新增量索引,增量条件的设定就比较重要了. 二.sphinx增量索引的设置:数据库中的已有数据很大,又不断有新数据加入到数据库中,也希望能         够检索到.全部重新建立索引很消耗资源,因为我们需要更新的数据相比较而言很少.例如.         原来的数据有几百万条,而新增的只是

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

原文件地址:http://blog.itpub.net/29806344/viewspace-1400942/ 在数据库数据非常庞大的时候,而且实时有新的数据插入,如果我们不更新索引,新的数据就search不到,全部重新建立索引又很消耗资源,在这种情况下我们就需要使用“主索引+增量索引”的思路来实现实时更新的功能. 因为这时我们有了主索引和增量索引,主索引只需在每天凌晨更新,而增量索引的更新频率设置的很短,这样用户在搜索的时候,可以同时在这两个索引里查找. 首先创建一个计数器: 1.先在mysq

sphinx教程 区段查询配置 命令(2)

首先查看配置文件 sphinx.conf 区段查询配置: # in sphinx.conf sql_query_range = SELECT MIN(id),MAX(id) FROM documents sql_range_step = 1000 sql_query = SELECT * FROM documents WHERE id>=$start AND id<=$end 如果这个表中,字段ID的最小值和最大值分别是1和2345,则sql_query将执行3次: 将 $start 替换为1

SPHINX 增量索引 实现近实时更新

一.sphinx增量索引的设置   数据库中的已有数据很大,又不断有新数据加入到数据库中,也希望能够检索到.全部重新建立索引很消耗资源,因为我们需要更新的数据相比较而言很少.例如.原来的数据有几百万条,而新增的只是几千条.这样就可以使用“主索引+增量索引”的模式来实现近乎实时更新的功能. 这个模式实现的基本原理是设置两个数据源和两个索引,为那些基本不更新的数据建立主索引,而对于那些新 增的数据建立增量索引.主索引的更新频率可以设置的长一些(例如设置在每天的午夜进行),而增量索引的更新频率,我们可