程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> linux 配置 sphinx 全文搜索引擎,

linux 配置 sphinx 全文搜索引擎,

編輯:關於PHP編程

linux 配置 sphinx 全文搜索引擎,


因為公司網站需要,最近在弄sphinx搜索引擎,也是遇到各種問題,最終終於解決了。

服務器系統:centos7 (64位)

詳情看安裝官網的安裝教程進行 coreseek 3.2.14

這裡只提一些注意的地方

1:在安裝前先安裝基礎開發庫及數據庫依賴

yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel:

 2:下載

 wget http://www.coreseek.cn/uploads/csft/3.2/coreseek-3.2.14.tar.gz

3:安裝mmseg,這裡應該是沒有什麼問題的。

 

$ cd mmseg-3.2.14
$ ./bootstrap    #輸出的warning信息可以忽略,如果出現error則需要解決
$ ./configure --prefix=/usr/local/mmseg3
$ make && make install
$ cd ..

4:安裝csft

進入到csft目錄,先修改src/sphixexpr.cpp這個文件,裡面3個地方編譯會出錯的

將ExprEval改為this->ExprEval

 再進行下一步安裝,這樣就可以了。

sh buildconf.sh 

./configure --prefix=/usr/local/coreseek  --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql

make && make install

5:然後就是配置文件,到安裝目錄下復制一份

cd /usr/local/coreseek/etc
cp sphinx.conf.dist sphinx.conf
vim sphinx.conf

主要修改數據庫參數 ,其他一些警告問題,注釋掉配置文件裡面相應內容即可,暫時未發現問題

type                    = mysql

sql_host                = localhost
sql_user                = root
sql_pass                = 
sql_db                    = test
sql_port                = 3306
sql_query_pre            = SET NAMES utf8

然後保存,生成索引

cd /usr/local/coreseek/bin
./indexer -c /usr/local/coreseek/etc/sphinx.conf --all
./searchd -c  /usr/local/coreseek/etc/sphinx.conf

導入測試數據,調用測試文件

require ( "sphinxapi.php" );

$cl = new SphinxClient ();
$cl->SetServer ( '127.0.0.1', 9312);
$cl->SetConnectTimeout ( 3 );
$cl->SetArrayResult ( true );
$cl->SetMatchMode ( SPH_MATCH_ANY);
$res = $cl->Query ( '網絡搜索', "*" );
print_r($cl);
print_r($res);

應該就沒有問題,確保系統中文zh_CN.UTF-8,才能保證中文顯示

下面是自己公司的情況,可能也有人會有這樣的情況。

搜索引擎在一個服務器,而網站及數據庫在另一個服務器,這樣的情況下需要考慮的

1:coreseek 安裝中如果提示libmysqlclient.so.18共享庫找不到

在mysql服務器復制一份libmysqlclient.so.18,路徑為/usr/lib64/mysql/libmysqlclient.so.18

2:搜索引擎所在的服務器防火牆端口是否開放

centos7先安裝

yum install firewalld-config

 然後開啟端口

firewall-cmd [--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]
firewall-cmd --permanent --add-port=10-9900/tc

查詢

firewall-cmd --permanent --query-port=80/tcp

3:網站php調用api版本必須與coreseek 版本一致。

測試過程可以在php中直接輸出

var_dump($cl);//$cl為sphinxClient對象

查看錯誤信息。

 以上問題解決了應該就可以正常使用了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved