《CMS案例:phpcms v9 配置sphinx全文索引教程》要點:
本文介紹了CMS案例:phpcms v9 配置sphinx全文索引教程,希望對您有用。如果有疑問,可以聯(lián)系我們。
相關(guān)主題:PHPCMS教程
CMS系統(tǒng)一、首先需要在服務(wù)器上安裝sphinx
在Windows上安裝sphinx
? ? 1.下載支持mysql的包??http://www.sphinxsearch.com/downloads/sphinx-0.9.9-win32.zip
? ? 2.解壓縮 sphinx-0.9.9-win32.zip 到 D:\sphinx
? ? 3.安裝sphinx服務(wù),在命令行執(zhí)行命令
CMS系統(tǒng)
??? 英文參照:http://www.sphinxsearch.com/docs?... #installing-windows
在Linux服務(wù)器上安裝sphinx
? ?1.下載源碼包?http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz
?CMS系統(tǒng)$ tar xzvf sphinx-0.9.8.tar.gz
$ cd sphinx
$?./configure?--prefix=/usr/local/sphinx?--with-mysql=/usr/local/mysql
$ make
$ make install
CMS系統(tǒng)?常見問題1
?CMS系統(tǒng)
? ? ? ? ? ? ? ??/usr/local/sphinx-0.9.9/src/sphinx.cpp:20060:?undefined?reference to?`libiconv_open'
? ? ? ? ? ? ? ? /usr/local/sphinx-0.9.9/src/sphinx.cpp:20078: undefined reference to `libiconv'
? ? ? ? ? ? ? ? /usr/local/sphinx-0.9.9/src/sphinx.cpp:20084: undefined reference to `libiconv_close'
? ? ? ? ? ? ? ? collect2:?ld returned?1?exit?status
? ? ? ? ? ? ? ? make[2]:?***?[indexer]?Error?1
? ? ? ? ? ? ? ? make[2]:?Leaving?directory?`/home/jling/sphinx-0.9.9/src'
? ? ? ? ? ? ? ? make[1]: *** [all] Error 2
? ? ? ? ? ? ? ? make[1]: Leaving directory `/home/jling/sphinx-0.9.9/src'
? ? ? ? ? ? ? ? make: *** [all-recursive] Error 1
CMS系統(tǒng)解決辦法:打開configure文件,找到“#define USE_LIBICONV 1”,將注釋去掉,并將1改成0.
CMS系統(tǒng)
常見問題2
?CMS系統(tǒng)
? ? ? ? ? ? ? ? error?while?loading shared libraries:?libmysqlclient.so.16:?cannot open shared?object?file:?No?such file?or?directory
CMS系統(tǒng)
解決辦法:
?CMS系統(tǒng)
? ? ? ? ? ? ? ??64位系統(tǒng)ln?-s?/usr/local/webserver/mysql/lib/mysql/libmysqlclient.so.16.0.0?/usr/lib64/libmysqlclient.so.16
? ? ? ? ? ? ? ??32位系統(tǒng)ln?-s?/usr/local/webserver/mysql/lib/mysql/libmysqlclient.so.16.0.0?/usr/lib/libmysqlclient.so.16
CMS系統(tǒng)?
CMS系統(tǒng)sphinx.conf樣例 ?
?CMS系統(tǒng)source main
? ? ? ? ? ? ? ??{
? ? ? ? ? ? ? ? ?type ? ??=?mysql ? ?#數(shù)據(jù)庫類型
? ? ? ? ? ? ? ? ?sql_host ? ?=?10.228.134.211?#數(shù)據(jù)庫ip
? ? ? ? ? ? ? ? ?sql_user ? ?=?admin ? ?#數(shù)據(jù)庫用戶名
? ? ? ? ? ? ? ? ?sql_pass ? ?=?admin ? ?#數(shù)據(jù)庫密碼
? ? ? ? ? ? ? ? ?sql_db ? ??=?phpcms_v9 ??#數(shù)據(jù)庫名
? ? ? ? ? ? ? ? ?sql_port ? ?=?3306?? ?# 數(shù)據(jù)庫端口CMS系統(tǒng)? sql_query_pre = SET NAMES utf8
? ? ? ? ? ? ? ? ?sql_query_pre?=?REPLACE INTO v9_sphinx_counter SELECT?1,?MAX(searchid)?FROM v9_search
? ? ? ? ? ? ? ? ?sql_query?=?SELECT searchid,?adddate,?siteid,?typeid,?id,?data FROM v9_search?\
? ? ? ? ? ? ? ? ? ? WHERE searchid>=$start AND searchid<=$end
? ? ? ? ? ? ? ? ?sql_query_range ?=?SELECT?1,max_doc_id FROM v9_sphinx_counter WHERE counter_id=1
? ? ? ? ? ? ? ? ?sql_range_step?=?5000CMS系統(tǒng)??#字符串屬性設(shè)置、需要過濾、排序的時候用到
? ? ? ? ? ? ? ? ?sql_attr_uint ?=?typeid
? ? ? ? ? ? ? ? ?sql_attr_uint ?=?siteid
? ? ? ? ? ? ? ? ?sql_attr_uint ?=?id
? ? ? ? ? ? ? ? ?sql_attr_timestamp ?=?adddate
? ? ? ? ? ? ? ? ?sql_query_info ?=?SELECT?*?FROM v9_search WHERE searchid=$id
? ? ? ? ? ? ? ??}CMS系統(tǒng)?source delta
? ? ? ? ? ? ? ??{
? ? ? ? ? ? ? ? ?type ? ??=?mysql ? ?#數(shù)據(jù)庫類型
? ? ? ? ? ? ? ? ?sql_host ? ?=?10.228.134.211?#數(shù)據(jù)庫ip
? ? ? ? ? ? ? ? ?sql_user ? ?=?admin ? ?#數(shù)據(jù)庫用戶名
? ? ? ? ? ? ? ? ?sql_pass ? ?=?admin ? ?#數(shù)據(jù)庫密碼
? ? ? ? ? ? ? ? ?sql_db ? ??=?phpcms_v9 ??#數(shù)據(jù)庫名
? ? ? ? ? ? ? ? ?sql_port ? ?=?3306?? ?# 數(shù)據(jù)庫端口CMS系統(tǒng)? ? ?sql_query_pre = SET NAMES utf8
? ? ? ? ? ? ? ? ? ? sql_query?=?SELECT searchid,?adddate,?siteid,?typeid,?id,?data FROM v9_search?\
? ? ? ? ? ? ? ? ? WHERE searchid?>(?SELECT max_doc_id FROM v9_sphinx_counter WHERE counter_id=1?)
? ? ? ? ? ? ? ? ?sql_query_post?=?REPLACE INTO v9_sphinx_counter SELECT?1,?MAX(searchid)?FROM v9_search
? ? ? ? ? ? ? ? ?#字符串屬性設(shè)置、需要過濾、排序的時候用到
? ? ? ? ? ? ? ? ?sql_attr_uint ?=?typeid
? ? ? ? ? ? ? ? ?sql_attr_uint ?=?siteid
? ? ? ? ? ? ? ? ?sql_attr_uint ?=?id
? ? ? ? ? ? ? ? ?sql_attr_timestamp ?=?adddate
? ? ? ? ? ? ? ? ?sql_query_info ?=?SELECT?*?FROM v9_search WHERE searchid=$id
? ? ? ? ? ? ? ??}CMS系統(tǒng)?#主索引
? ? ? ? ? ? ? ? index main
? ? ? ? ? ? ? ??{
? ? ? ? ? ? ? ? ?source?=?main
? ? ? ? ? ? ? ? ?# 放索引的目錄
? ? ? ? ? ? ? ? ?path?=?D:\sphinx\data\main
? ? ? ? ? ? ? ? ?# 編碼
? ? ? ? ? ? ? ? ?charset_type?=?utf-8
? ? ? ? ? ? ? ? ?# 指定utf-8的編碼表
? ? ? ? ? ? ? ? ?charset_table?=?0..9,?A..Z->a..z,?_,?a..z,?U+410..U+42F->U+430..U+44F,?U+430..U+44F
? ? ? ? ? ? ? ? ?# 簡單分詞,只支持0和1,如果要搜索中文,請指定為1
? ? ? ? ? ? ? ? ?ngram_len?=?1
? ? ? ? ? ? ? ? ?# 需要分詞的字符,如果要搜索中文,去掉前面的注釋
? ? ? ? ? ? ? ? ?ngram_chars ??=?U+3000..U+2FA1F
? ? ? ? ? ? ? ??}CMS系統(tǒng)?#增量索引
? ? ? ? ? ? ? ? index delta
? ? ? ? ? ? ? ??{
? ? ? ? ? ? ? ? ? ? source?=?delta
? ? ? ? ? ? ? ? ? ? path?=?D:\sphinx\data\delta
? ? ? ? ? ? ? ? ?# 編碼
? ? ? ? ? ? ? ? ?charset_type?=?utf-8
? ? ? ? ? ? ? ? ?# 指定utf-8的編碼表
? ? ? ? ? ? ? ? ?charset_table?=?0..9,?A..Z->a..z,?_,?a..z,?U+410..U+42F->U+430..U+44F,?U+430..U+44F
? ? ? ? ? ? ? ? ?# 簡單分詞,只支持0和1,如果要搜索中文,請指定為1
? ? ? ? ? ? ? ? ?ngram_len?=?1
? ? ? ? ? ? ? ? ?# 需要分詞的字符,如果要搜索中文,去掉前面的注釋
? ? ? ? ? ? ? ? ?ngram_chars ??=?U+3000..U+2FA1F
? ? ? ? ? ? ? ??}
? ? ? ? ? ? ? ? ?CMS系統(tǒng)?indexer
? ? ? ? ? ? ? ??{
? ? ? ? ? ? ? ? ?mem_limit ? ?=?128M
? ? ? ? ? ? ? ??}CMS系統(tǒng)?searchd
? ? ? ? ? ? ? ??{
? ? ? ? ? ? ? ? ?port ? ??=?9312
? ? ? ? ? ? ? ? ?log ? ? ?=?D:\sphinx\data\phpcms\searchd.log
? ? ? ? ? ? ? ? ?query_log ? ?=?D:\sphinx\data\phpcms\query.log
? ? ? ? ? ? ? ? ?read_timeout ??=?5
? ? ? ? ? ? ? ? ?max_children ??=?30
? ? ? ? ? ? ? ? ?pid_file ? ?=?D:\sphinx\data\phpcms\searchd.pid
? ? ? ? ? ? ? ? ?max_matches ? ?=?2000
? ? ? ? ? ? ? ? ?seamless_rotate ??=?0
? ? ? ? ? ? ? ? ?preopen_indexes ??=?0
? ? ? ? ? ? ? ? ?unlink_old ? ?=?1
? ? ? ? ? ? ? ??}
CMS系統(tǒng)?
CMS系統(tǒng)附件:設(shè)置計劃任務(wù)更新索引
1.windows下
需要設(shè)置計劃任務(wù)
#凌晨4點合并索引,執(zhí)行merge.bat
#其余時間每分鐘更新索引,執(zhí)行delta.bat
?
merge.bat ?
? ? ? ?CMS系統(tǒng)
? ? ? ? ? ? ? ??@ECHO?off
? ? ? ? ? ? ? ? D:\sphinx\bin\indexer.exe?--config D:\sphinx\sphinx.conf?--merge main delta?--rotate
? ? ? ? ? ? ? ? echo indexing,?window will close?when?complete
? ? ? ? ? ? ? ? ?
CMS系統(tǒng)?
CMS系統(tǒng)delta.bat
?CMS系統(tǒng)
? ? ? ? ? ? ? ??@ECHO?off
? ? ? ? ? ? ? ? D:\sphinx\bin\indexer.exe?--config D:\sphinx\sphinx.conf delta?--rotate
? ? ? ? ? ? ? ? echo indexing,?window will close?when?complete
CMS系統(tǒng)
2.linux下編輯定時任務(wù) crontab -e
?CMS系統(tǒng)
? ? ? ? ? ? ? ??#凌晨4點合并索引,其余時間每分鐘更新索引
? ? ? ? ? ? ? ??*?0-3?*?*?*?/usr/local/sphinx/bin/indexer?--config?/usr/local/sphinx/etc/sphinx.conf delta?--rotate
? ? ? ? ? ? ? ??*?6-23?*?*?*?/usr/local/sphinx/bin/indexer?--config?/usr/local/sphinx/etc/sphinx.conf delta?--rotate
? ? ? ? ? ? ? ??0?4?*?*?*?/usr/local/sphinx/bin/indexer?--config?/usr/local/sphinx/etc/sphinx.conf?--merge main delta?--rotate
CMS系統(tǒng)
各種路徑、權(quán)限需要應(yīng)用所在服務(wù)器一致,如:
sphinx.conf 中需要配置
sql_host 數(shù)據(jù)庫主機地址
sql_user 數(shù)據(jù)庫用戶名
sql_pass 數(shù)據(jù)庫密碼
sql_db 數(shù)據(jù)庫名
sql_port 數(shù)據(jù)庫端口
phpcms表前綴樣例中為phpcms_
索引路徑 D:\sphinx\data\delta
CMS系統(tǒng)?
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/5815.html