在sphinx+libmmseg搭建中文全文搜尋引擎_安裝配置中安裝試驗了sphinx的使用,但是還有幾方面的問題有待處理。
用來建立索引的分詞資料
動態增量索引更新
索引在前端的介面的表現使用
本篇主要是對動態增量更新的一些研究。關於分詞資料的建立和前端介面的控制將在以後研究。
在利用 sphinx 做搜尋引擎的時候,一般他的索引建立構成有如下幾個部分:
固定不變的主索引
增量索引重建
索引資料合併
在實際操作中,需要為增量索引的建立建立輔助表,這樣才可以記住最後建立索引的記錄id,做實際的增量部分的索引建立。
1、建立輔助表
create
table
`sph_counter` (
`counter_id`
int(11)
not
null,
`max_doc_id`
int(11)
not
null,
primary
key
(`counter_id`) )
engine=myisam
default
charset=utf8
2、在主索引的資料來源中作如下方式的取資料設定
#源定義
source mysql
3、在增量索引的資料來源中作如下方式的取資料設定,需要注意的是sql_query_pre要和主索參數量相同,不然查詢結果不是想要的內容
#增量索引 源定義
source delta:mysql
4、主索引index定義配置如下
#index定義
index mysql
5、增量索引index定義配置如下
#增量索引 index定義
index delta:mysql
6、建立更新所有索引
$sudo /usr/local/coreseek/bin/indexer -c/usr/local/coreseek/dict/csft_mysql.conf --all --rotate
如果配置正確的話,現在輔助表sph_counter中已經新增了一條資料
7、更新增量索引
$sudo /usr/local/coreseek/bin/indexer delta -c/usr/local/coreseek/dict/csft_mysql.conf --rotate
8、合併增量索引到主索引
$sudo /usr/local/coreseek/bin/indexer --merge -c/usr/local/coreseek/dict/csft_mysql.conf --rotate
9、啟動sphinx的守護程序searchd
$sudo /usr/local/coreseek/bin/searchd -c/usr/local/coreseek/dict/csft_mysql.conf
Sphinx增量索引
sphinx建立索引之後,如果我們的資料庫又增加了一條資料,需要重新建立索引。但是如果資料量十分龐大時,每次都重新建立索引顯然是不合適的。我們希望實現的效果是,每次都只建立新增的資料的索引。假設現在資料庫中有三條資料,id分別為1,2,3。使用indexer命令為這三條資料建立索引,並把max do...
sphinx增量索引使用
sphinx在使用過程中如果表的資料量很大,新增加的內容在sphinx索引沒有重建之前都是搜尋不到的。這時可以通過建立sphinx增量索引,通過定時更新增量索引,合併主索引的方式,來實現偽實時更新。使用定時任務,定時更新增量索引,例如10分鐘一次 在利用 sphinx 做搜尋引擎的時候,一般他的索引...
sphinx主索引,增量索引建立
相關命令及步驟 建立主索引 usr local coreseek bin indexer c usr local coreseek etc csft.conf all 建立增量索引 1.建立測試資料表以及資料 2.修改配置檔案 主索引源 sql query pre 增量索引源 sql query p...