中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

sphinx中怎么更新增量索引

這期內容當中小編將會給大家帶來有關sphinx中怎么更新增量索引,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

按需策劃設計可以根據自己的需求進行定制,成都做網站、成都網站制作構思過程中功能建設理應排到主要部位公司成都做網站、成都網站制作的運用實際效果公司網站制作網站建立與制做的實際意義

實現思路:

需要準備:1》建立一張表,記錄數據最大id值。2》兩個索引

1.先在MySQL中插入一個計數表和兩個索引表

CREATE TABLE sph_counter(    counter_id INTEGER PRIMARY KEY NOT NULL,    max_doc_id INTEGER NOT NULL);

2.修改sphinx.conf
source main_src{

       type                = mysql
       sql_host            = localhost
       sql_user            = yourusername
       sql_pass            = yourpassword
       sql_db              = test   //你所用的數據庫
       sql_port            = 3306 //所用端口,默認是3306
       sql_query_pre       = SET NAMES utf8
       sql_query_pre       = SET SESSION query_cache_type=OFF       
       #下面的語句是更新sph_counter表中的 max_doc_id。       
       sql_query_pre = REPLACE INTO sph_counter SELECT 1, MAX(id) FROM documents

       sql_query = SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title,content FROM documents WHERE id<=( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 ) 
}

#注意:delta_src 中的sql_query_pre的個數需和main_src 對應,否則可能搜索不出相應結果
source delta_src: main_src{
         sql_ranged_throttle = 100
         sql_query_pre       = SET NAMES utf8
         sql_query_pre       = SET SESSION query_cache_type=OFF
         sql_query      = SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content FROM documents WHERE id>( SELECT max_doc_id FROM sph_counter WHERE counter_id=1 )
}

#主索引
index main {
       source           = main_src
       path             = /path/to/main
       #example:   /usr/local/sphinx/var/data/main
       charset_type     = utf-8    #這個是支持中文必須要設置的
       #中文檢索路徑
       chinese_dictionary =/usr/local/mmseg3/etc/       
}

#delta可全部復制主索引,然后更改source 和path如下
#增量索引
index delta: main {
         source = delta_src
         path     = /path/to/delta
         # example:  /usr/local/sphinx/var/data/delta…
         #中文檢索路徑         
       chinese_dictionary =/usr/local/mmseg3/etc/       
}

其它的配置可都用默認的,如果你設置了分布式檢索的索引,那么更改下對應的索引名稱即可。

3.重新建立索引:

 /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf --all --rotate
接下來的問題是如何讓增量索引與主索引合并

4.索引合并
合并兩個已有索引 有時比 重新索引所有數據有效,雖然,索引合并時,待合并的兩個索引都會被讀入內存一次,合并后的內容需寫入磁盤一次,即,合并100GB和1GB的兩個所以,將導致202GB的IO操作
命令原型:  indexer --merge DSTINDEX  SRCINDEX [--rotate]   將SRCINDEX合并到 DSTINDEX ,所以只有DSTINDEX會改變,如果兩個索引都正在提供服務,那么 -- rotate 參數是必須的。例如:將delta合并到main中。
indexer --merge main delta   

5.索引自動更新
需要使用到腳本。
建立兩個腳本:build_main_index.sh 和 build_delta_index.sh.


build_main_index.sh:
#!/bin/sh
# 停止正在運行的searchd
/usr/local/sphinx/bin/searchd -c /usr/local/sphinx/etc/mersphinx.conf  --stop >> /usr/local/sphinx/var/log/sphinx/searchd.log
#建立主索引
/usr/local/sphinx/bin/indexer -c  /usr/local/sphinx/etc/mersphinx.conf main >> /usr/local/sphinx/var/log/sphinx/mainindex.log
#啟動searchd守護程序
/usr/local/sphinx/bin/searchd >> /usr/local/sphinx/var/log/sphinx/searchd.log

build_delta_index.sh

#!/bin/sh
#停止sphinx服務,將輸出重定向
/usr/local/sphinx/bin/searchd –stop >> /usr/local/sphinx/var/log/sphinx/searchd.log
#重新建立索引delta ,將輸出重定向
/usr/local/sphinx/bin/indexer delta –c /usr/local/sphinx/etc/sphinx.conf>>/usr/lcoal/sphinx/var/log/sphinx/deltaindex.log
#將delta合并到main中
/usr/local/sphinx/bin/indexer –merge main delta –c /usr/local/sphinx/etc/sphinx.conf >> /usr/lcoal/sphinx/var/log/sphinx/deltaindex.log
#啟動服務
/usr/local/sphinx/bin/searchd >> /usr/local/sphinx/var/log/sphinx/searchd.log

腳本寫好后,需要編譯 chmod +x filename 這樣才能運行。即
chmod +x build_main_index.sh
chmod +x build_delta_index.sh

最后,我們需要腳本能夠自動運行,以實現,delta索引每5分鐘重新建立,和main索引只在午夜2:30時重新建立。

使用crontab 命令 這有倆個地方可作參考 crontab  crontab文件
crontab -e 來編輯 crontab文件,如果之前沒有使用,會是一個空的文件。寫下下面兩條語句
*/30 * * * *  /bin/sh /usr/local/sphinx/etc/build_delta_index.sh > /dev/null 2>&1
30 2 * * * /bin/sh /usr/local/sphinx/etc/build_main_index.sh > /dev/null 2>&1

第一條是表示每30分鐘運行 /usr/local/sphinx/etc/下的build_delta_index.sh 腳本,輸出重定向。
第二條是表示 每天的 凌晨2:30分運行 /usr/local/sphinx/etc下的build_main_inde.sh 腳本,輸出重定向。
關于前面的 5個值的設置,在上面的crontab文件中有詳細的描述。關于重定向的解釋,請看最上面的Crontab筆記 ,也有crontab的介紹。

保存好后:重新啟動服務
  [root@test1 init.d]# service crond stop
[root@test1 init.d]# service crond start
或者
/etc/init.d/crontab   start

執行計劃任務就可以了,合并索引適合修改數據庫少的情況,如果修改數據庫數據,則需要再次讀取數據庫生成主索引,具體根據業務需求制定計劃。

上述就是小編為大家分享的sphinx中怎么更新增量索引了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創新互聯行業資訊頻道。

文章題目:sphinx中怎么更新增量索引
本文地址:http://www.2m8n56k.cn/article4/ipciie.html

成都網站建設公司_創新互聯,為您提供網頁設計公司、小程序開發、網站導航、網站制作、做網站、品牌網站設計

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

微信小程序開發
主站蜘蛛池模板: 久久久久毛片成人精品 | 国产成人午夜性a一级毛片 国产成人午夜性视频影院 国产成人香蕉久久久久 | 新版天堂资源中文8在线 | 国产精品亚洲二线在线播放 | 免费欧美一级片 | 国产福利精品在线观看 | 最新亚洲情黄在线网站无广告 | 97视频免费观看2区 97视频免费上传播放 | 亚洲伊人色综合网站小说 | 亚洲综合a | 精品国产自 | 高清一级片 | 手机在线观看毛片 | 国产成人综合洲欧美在线 | 欧美69xx| 欧美精品一区二区三区免费观看 | 久久91精品综合国产首页 | 成人α片| 欧美乱大交xxxxx在线观看 | 国产美女白丝袜精品_a不卡 | 午夜在线播放免费人成无 | 亚洲日本欧美产综合在线 | 麻豆视频一区 | 国产性自拍 | www.久草视频| 日韩在线观看一区二区三区 | 免费观看成为人视频 | 这里只有精品国产 | 日韩欧美一区二区三区在线观看 | 国产高清在线视频 | 欧美精品久久久亚洲 | 一道精品视频一区二区三区图片 | 国产一级做a爰片... | 国产精品自拍视频 | 日本视频播放免费线上观看 | 长腿嫩模打开双腿呻吟 | 精品韩国主播福利视频在线观看一 | 伊大人香蕉久久网欧美 | 成人中文字幕一区二区三区 | 久久久一级 | 久久国产乱子伦精品免费不卡 |