安裝sphinxmysql
yum install -y mysql mysql-devel yum install automake autoconf cd /usr/local/src/ wget http://sphinxsearch.com/files/sphinx-2.1.7-release.tar.gz tar -zxvf sphinx-2.1.7-release.tar.gz cd sphinx-2.1.7-release ./configure --prefix=/usr/local/sphinx --with-mysql=/usr/local/mysql make make install cd /usr/local/sphinx/ cp etc/sphinx.conf.dist etc/sphinx.conf
配置sphinxsql
vim etc/sphinx.conf
主要對 索引源以及索引進行配置,索引源主要配置數據庫等源的配置,索引就是對索引進行的一些配置。
可選配置:索引器配置,sphinx 服務進程配置
須要注意的是:索引源以及索引要對應上(兩個src1)
代碼片斷:
source src1{....
index simon_test{
source = src1
具體配置請看附1
啓動sphinx數據庫
bin/indexer -c etc/sphinx.conf simon_test
可能遇到的問題vim
1.錯誤:
bin/indexer -c etc/sphinx.conf article bin/indexer: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory 解決辦法: vim /etc/ld.so.conf
增長mysql lib 目錄 /usr/local/mysql/lib/mysql 增長後執行 ldconfig
附1緩存
##### 索引源 ########### source article_src { type = mysql #####數據源類型 sql_host = 192.168.1.10 ######mysql主機 sql_user = root ########mysql用戶名 sql_pass = pwd############mysql密碼 sql_db = test #########mysql數據庫名 sql_port= 3306 ###########mysql端口 sql_query_pre = SET NAMES UTF8 ###mysql檢索編碼,特別要注意這點,不少人中文檢索不到是數據庫的編碼是GBK或其餘非UTF8 sql_query = SELECT id,title,cat_id,member_id,content,created FROM sphinx_article ####### 獲取數據的sql #####如下是用來過濾或條件查詢的屬性############ sql_attr_uint = cat_id ######## 無符號整數屬性 sql_attr_uint = member_id sql_attr_timestamp = created ############ UNIX時間戳屬性 sql_query_info = select * from sphinx_article where id=$id ######### 用於命令界面端(CLI)調用的測試 } ### 索引 ### index article { source = article_src ####聲明索引源 path = /usr/local/sphinx/var/data/article #######索引文件存放路徑及索引的文件名 docinfo = extern ##### 文檔信息存儲方式 mlock = 0 ###緩存數據內存鎖定 morphology = none #### 形態學(對中文無效) min_word_len = 1 #### 索引的詞最小長度 charset_type = utf-8 #####數據編碼 ##### 字符表,注意:如使用這種方式,則sphinx會對中文進行單字切分, ##### 即進行字索引,若要使用中文分詞,必須使用其餘分詞插件如 coreseek,sfc min_prefix_len = 0 #最小前綴 min_infix_len = 1 #最小中綴 ngram_len = 1 # 對於非字母型數據的長度切割 #加上這個選項,則會對每一箇中文,英文字詞進行分割,速度會慢 #ngram_chars = U+4E00..U+9FBF, U+3400..U+4DBF, U+20000..U+2A6DF, U+F900..U+FAFF,\ #U+2F800..U+2FA1F, U+2E80..U+2EFF, U+2F00..U+2FDF, U+3100..U+312F, U+31A0..U+31BF,\ #U+3040..U+309F, U+30A0..U+30FF, U+31F0..U+31FF, U+AC00..U+D7AF, U+1100..U+11FF,\ #U+3130..U+318F, U+A000..U+A48F, U+A490..U+A4CF } ######### 索引器配置 ##### indexer { mem_limit = 256M ####### 內存限制 } ############ sphinx 服務進程 ######## searchd { #listen = 9312 ### 監聽端口,在此版本開始,官方已在IANA得到正式受權的9312端口,之前版本默認的是3312 log = /usr/local/sphinx/var/log/searchd.log #### 服務進程日誌 ,一旦sphinx出現異常,基本上能夠從這裏查詢有效信息,輪換(rotate)出的問題通常可在此尋到答案 query_log = /usr/local/sphinx/var/log/query.log ### 客戶端查詢日誌,筆者注:若欲對一些關鍵詞進行統計,能夠分析此日誌文件 read_timeout = 5 ## 請求超時 max_children = 30 ### 同時可執行的最大searchd 進程數 pid_file = /usr/local/sphinx/var/log/searchd.pid #######進程ID文件 max_matches = 1000 ### 查詢結果的最大返回數 seamless_rotate = 1 ### 是否支持無縫切換,作增量索引時一般須要 }