coreseek實時索引更新之增量索引

2021-07-15 02:50:13 字數 1588 閱讀 5401

coreseek實時索引更新有兩種選擇:

1.使用基於磁碟的索引,手動分割槽,然後定期重建較小的分割槽(被稱為「增量」)。通過盡可能的減小重建部分的大小,可以將平均索引滯後時間降低到30~60秒.在0.9.x版本中,這是唯一可用的方法。在乙個巨大的文件集上,這可能是最有效的一種方法

2.版本1.x(從版本1.10-beta開始)增加了實時索引(簡寫為rt索引)的支援,用於及時更新全文資料。在rt索引上的更新,可以在1~2毫秒(0.001-0.002秒)內出現在搜尋結果中。然而,rt實時索引在處理較大資料量的批量索引上效率並不高。

這篇我們只要是增量索引

基本思路是設定兩個資料來源和兩個索引,對很少更新或根本不更新的資料建立主索引,而對新增文件建立增量索引

在配置檔案中定義了主索引和增量索引之後,不能直接用indexer –config d:\coreseek\csft.conf –all,再新增資料到資料庫中,再用indexer –config d:\coreseek\csft.confg main delta –rotate來弄(我居然這樣弄了兩次)。正確的步驟為:

1.建立主索引

:indexer –cd:\coreseek\csft.conf --all

2.新增資料

3.再建立增量索引

:indexer –cd:\coreseek\csft.conf delta --rotate

4.合併索引

:indexer –cd:\coreseek\csft.conf --merge main delta –rotate(為了防止多個關鍵字指向同乙個文件加上

--merge-dst-range deleted 0 0)

增量配置檔案如下:

[plain]view plain

copy

#增量索引  

source main  

source delta : main  

#index定義  

index main  

index delta : main  

#全域性index定義  

indexer  

#searchd服務定義  

searchd    

注意問題

:如果我的主索引為

50w條我前天建立的

,我昨天增加了

10w條的資料

,並且建立了增量索引還和主索引合併了

,我今天增加了

10w的資料並且建立增量索引而且也和主索引合併了

,在這兩天內我是沒有重新建立主索引的

,問題來了:昨天是對

10w資料進行建立

,今天就是

20w的資料建立

,並且這

20w資料中有

10w資料其實在主索引中了

,這個是非常可怕的

?解決方案:

1.一天建立一次主索引

2.在不考慮重新建立主索引的時候,在新增增量索引的時候用sql_query_post_index來改變maxid值我是windows下面手動輸入**成功(不知道用指令碼的時候會怎麼樣)

3.在不考慮重新建立主索引的時候,在合併索引的時候,用指令碼鏈結資料庫直接去修改(可以檢視:

sphinx 實時索引更新

1 實時索引更新 有這麼一種常見的情況 整個資料集非常大,以至於難於經常性的重建索引,但是每次新增 的記錄卻相當地少。乙個典型的例子是 乙個論壇有1000000個已經歸檔的帖子,但每天只 有1000個新帖子。在這種情況下可以用所謂的 主索引 增量索引 main delta 模式來實現 近實時 的 索...

sphinx 實時索引更新 php sir

1 實時索引更新 有這麼一種常見的情況 整個資料集非常大,以至於難於經常性的重建索引,但是每次新增 的記錄卻相當地少。乙個典型的例子是 乙個論壇有1000000個已經歸檔的帖子,但每天只 有1000個新帖子。在這種情況下可以用所謂的 主索引 增量索引 main delta 模式來實現 近實時 的 索...

sphinx主索引和增量索引實時更新

在資料庫資料非常龐大的時候,而且實時有新的資料插入,如果我們不更新索引,新的資料就search不到,全部重新建立索引又很消耗資源,在這種情況下我們就需要使用 主索引 增量索引 的思路來實現實時更新的功能。因為這時我們有了主索引和增量索引,主索引只需在每天凌晨更新,而增量索引的更新頻率設定的很短,這樣...