Coreseek:部门查询和增量索引代替实时索引
1.行業調查
索引系統需要通過主查詢來獲取所有的文檔信息,一個簡單的實現是整個表的數據到內存,但是這可能會導致整個表被鎖定,并且使其它操作被阻止(例如:在MyISAM格款式上INSERT操作)。同時,會浪費大量的內存來存儲查詢結果。喜歡它的問題。 為了避免出現這樣的情況。CoreSeek/Sphinx支持一種被稱為 區段查詢的技術. 首先,CoreSeek/Sphinx從數據庫中取出文檔ID的最小值和最大值。將由最大值和最小值定義自然數區間分成若干份,一次獲取數據。建立索引。現舉比例如以下:
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僅僅要在配置文件中面寫三條語句就可以from后面要跟的是你數據庫里面的表名,如這里的表就是document
2.增量索引取代實時索引
有這么一種常見的情況:整個數據集很大,以至于難于常常性的重建索引,可是每次新增的記錄卻相當地少。一個典型的樣例是:一個論壇有1000000個已經歸檔的帖子,但每天僅僅有1000個新帖子。
在這樣的情況下能夠用所謂的“主索引+增量索引”(main+delta)模式來實現“近實時”的索引更新。
這樣的方法的基本思路是設置兩個數據源和兩個索引,對非常少更新或根本不更新的數據建立主索引。而對新增文檔建立增量索引。在上述樣例中,那1000000個已經歸檔的帖子放在主索引中,而每天新增的1000個帖子則放在增量索引中。增量索引更新的頻率能夠非常快,而文檔能夠在出現幾分種內就能夠被檢索到。
確定詳細某一文檔的分屬那個索引的分類工作能夠自己主動完畢。
一個可選的方案是,建立一個計數表,記錄將文檔集分成兩部分的那個文檔ID,而每次又一次構建主索引時,這個表都會被更新。
分辨要在mysql里建表,然后改動配置文件
# in MySQL CREATE TABLE sph_counter (counter_id INTEGER PRIMARY KEY NOT NULL,max_doc_id INTEGER NOT NULL );# in sphinx.conf source main {# ...sql_query_pre = SET NAMES utf8sql_query_pre = REPLACE INTO sph_counter SELECT 1, MAX(id) FROM documentssql_query = SELECT id, title, body FROM documents \WHERE id<span style="color:#ff0000;"><=</span>( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 ) }source delta : main {sql_query_pre = SET NAMES utf8sql_query = SELECT id, title, body FROM documents \WHERE id<span style="color:#ff0000;">></span>( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 ) }index main {source = mainpath = /path/to/main# ... all the other settings }# note how all other settings are copied from main, # but source and path are overridden (they MUST be) index delta : main {source = deltapath = /path/to/delta }寫好之后,還要寫兩個批處理文件,一個做增量索引。一個合并索引。
增量索引:g:/service/coreseek/bin/indexer ?-c g:/service/coreseek/etc/csft_mysql.conf ? --rotate main_delta
合并索引:g:/service/coreseek/bin/indexer ?-c g:/service/coreseek/etc/csft_mysql.conf ?--merge main main_delta --rotate?
寫完后。既然后把該任務計劃,幾乎是同一5幾分鐘做一個增量索引,每天1有一半的時間做一個主索引
轉載于:https://www.cnblogs.com/yxwkf/p/4600215.html
總結
以上是生活随笔為你收集整理的Coreseek:部门查询和增量索引代替实时索引的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Zabbix 2.4.5 自定义 key
- 下一篇: 戴尔 笔记本bios怎么进入u盘启动设置