網站建設系統架構-coreseek安裝與配置:
//mmseg中文分詞安裝
#cd /tmp #tar -zxvf coreseek-4.1-beta.tar.gz #cd coreseek-4.1-beta/mmseg-3.2.14
//會報錯,需要執行下面的命令
#yum -y install autoconf automake libtool #aclocal #libtoolize --force #automake --add-missing #autoconf #autoheader #make clean #./configure --prefix=/usr/web/mmseg #make && make install
//加入環境變量
#ln -s /usr/web/mmseg/bin/mmseg /bin/mmseg
//coreseek安裝
#cd /tmp/coreseek-4.1-beta/csft-4.1 #sh buildconf.sh #./configure --prefix=/usr/web/coreseek --with-mysql=/usr/web/mysql --with-mmseg=/usr/web/mmseg --with-mmseg-includes=/usr/web/mmseg/include/mmseg/ --with-mmseg-libs=/usr/web/mmseg/lib/ #make && make install #cd /usr/web/coreseek/etc/ #cp sphinx.conf.dist csft.conf
//配置文件,基本上大部分和sphinx的相同
#vi csft.conf charset_type = zh_cn.utf-8 charset_dictpath = /usr/web/mmseg/etc/ #/usr/web/coreseek/bin/indexer -c /usr/web/coreseek/etc/csft.conf --all #/usr/web/coreseek/bin/indexer -c /usr/web/coreseek/etc/csft.conf test1stemmed --rotate //增量索引 #/usr/web/coreseek/bin/search -c /usr/web/coreseek/etc/csft.conf '兄弟連' #/usr/web/coreseek/bin/searchd -c /usr/web/coreseek/etc/csft.conf
啟動進程命令: searchd
-c #指定配置文件
--stop #是停止服務
--pidfile #用來顯式指定一個 PID 文件
-p #指定端口
//合并索引
indexer --merge DSTINDEX SRCINDEX [--rotate]
//合并索引過濾器
indexer --merge main delta --merge-dst-range deleted 0 0 #pstree |grep search #netstat -tunpl |grep 9312
php使用sphinx的2種方式
1、安裝擴展模塊
2、使用sphinxapi.php文件
//增量索引 創建一個計數器表,把主索引查詢到的最大ID記錄到這個表里,修改查詢語句,主數據源查詢是小于這個ID的,
//增量數據源查詢的是大于這個ID的數據。最少要重建一次主索引,增量索引才有效。
//實時索引 老的實現方式 定時更新增量索引和主索引,增量索引一般5分鐘更新一次,主索引一般凌晨左右更新一次。
//查詢的時候查詢 主索引和增量索引就能查到最新的數據了。
//分布式索引
分布式是為了改善查詢延遲問題和提高多服務器、多 CPU 或多核環境下的吞吐率,對于大量數據(即十億級的記錄數和 TB 級的文本量)上的搜索應用來說是很關鍵的
分布式思想:對數據進行水平分區(HP,Horizontally partition),然后并行處理,
當searchd收到一個對分布式索引的查詢時,它做如下操作
1. 連接到遠程代理.
2. 執行查詢.
3. 對本地索引進行查詢.
4. 接收來自遠程代理的搜索結果.
5. 將所有結果合并,刪除重復項.
6. 將合并后的結果返回給客戶端.
index dist { type = distributed local = chunk1 agent = localhost:9312:chunk2 本地 agent = 192.168.100.2:9312:chunk3 遠程 agent = 192.168.100.3:9312:chunk4 遠程 }
//專業詞庫的建立 核心(一個漫長的過程)
//mmseg字典生成
#cd /usr/web/mmseg/etc/ #/usr/web/mmseg/bin/mmseg -u unigram.txt #cp unigram.txt.uni /usr/web/mmseg/etc/uni.lib