SPHINX做增量索引更新

2021-07-14 17:58:33 字數 1478 閱讀 3406

在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 建立輔助表 create table sph counter ...

sphinx增量索引

在sphinx libmmseg搭建中文全文搜尋引擎 安裝配置中安裝試驗了sphinx的使用,但是還有幾方面的問題有待處理。用來建立索引的分詞資料 動態增量索引更新 索引在前端的介面的表現使用 本篇主要是對動態增量更新的一些研究。關於分詞資料的建立和前端介面的控制將在以後研究。在利用 sphinx ...

Sphinx增量索引

sphinx建立索引之後,如果我們的資料庫又增加了一條資料,需要重新建立索引。但是如果資料量十分龐大時,每次都重新建立索引顯然是不合適的。我們希望實現的效果是,每次都只建立新增的資料的索引。假設現在資料庫中有三條資料,id分別為1,2,3。使用indexer命令為這三條資料建立索引,並把max do...