首先在你的linux上先下載一個coreseek的一個linux的安裝包
因爲官網的下載地址已經不存在因此這裏我已經以其餘渠道下載完成
打開linux首先安裝以下依賴包;(若是有的話只須要更新)
在cd /usr目錄下
一、yum -y install m4 autoconf automake libtool
2、yum -y install gcc gcc-c++ wget
3、yum -y install mysql-devel
##mmseg3是一箇中文分詞插件
若是沒有下載的話能夠將根本文檔帶的安裝包上傳到linux
若是安裝包已經放好
執行以下命令:
或把安裝包用fz傳到usr目錄下
tar zxvf coreseek-3.2.14.tar.gz 解壓命令
cd coreseek-3.2.14 進入目錄
cd mmseg-3.2.14/ 進入中文分詞插件
./bootstrap
./configure --prefix=/usr/local/mmseg3 檢測配置
make && make install 編譯 && 編譯安裝
echo $? 輸出0表明沒錯
cd../csft3.2.14/ 進入配置目錄
shbuildconf.sh
執行腳本
./configure --prefix=/usr/local/coreseek --without-python --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib/ --with-mysql --host=arm
檢測配置
cd /usr/local 看有沒有mmseg3
cd ../
cd coreseek-3.2.14/
cd csft-3.2.14/
安裝過程須要修改一個配置文件
在win安裝包找到改好後替換掉linux 內的此文件
vi src/sphinxexpr.cpp
而後將全部的T val = ExprEval ( this->m_pArg, tMatch ).....修改成
T val = this->ExprEval ( this->m_pArg, tMatch )
(建議你們將此文件拿到本地進行修改)
替換後執行[root@localhost csft-3.2.14]# make
make install
cd /usr/local/coreseek/etc
進入coreseek安裝完成的路徑
輸入ls會看到3個文件
example.sql sphinx.conf.dist sphinx-min.conf.dist
如今已經基本安裝完成
其中example.sql是示例sql腳本咱們將其導入到數據庫中的test數據庫中做爲測試數據(會建立兩張表 documents和tags)
mysql -u root -p
show databases;
use test;
建立表
source /usr/local/coreseek/etc/example.sql
exit;
建立vi sphinx.conf
輸入如下內容:
source src1
{
type = mysql
sql_host = 192.168.214.128
sql_user = root
sql_pass = root
sql_db = test
sql_port = 3306 # optional, default is 3306
sql_sock = /tmp/mysql.sock
sql_query_pre = SET NAMES utf8
sql_query = SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content FROM documents
sql_attr_uint = group_id
sql_attr_timestamp = date_added
sql_query_info = SELECT * FROM documents WHERE id=$id
}
source src2 : src1
{
sql_query = SELECT `id`, 2 AS table_id, `username`, `password`, `email`, `salt`, `from` FROM table_2
}
index test1
{
source = src1
path = /usr/local/coreseek/var/data/test1
docinfo = extern
charset_type = zh_cn.utf-8
mlock = 0
morphology = none
min_word_len = 1
html_strip = 0
charset_dictpath = /usr/local/mmseg3/etc/
ngram_len = 0
}
index test2 : test1
{
source = src2
path = E:/SQL_DATA/coreseek/var/data/table_2
}
indexer
{
mem_limit = 32M
}
searchd
{
port = 9312
log = /usr/local/coreseek/var/log/searchd.log
query_log = /usr/local/coreseek/var/log/query.log
read_timeout = 5
max_children = 30
pid_file = /usr/local/coreseek/var/log/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 0
unlink_old = 1
}
進入 cd /etc/
打開 vim ld.so.conf
添加:/usr/local/mysql/lib
刷新 ldconfig
說明:
代碼段source src1{***} 表明數據源裏面主要包含了數據庫的配置信息,src1表示數據源名字,能夠隨便寫。
代碼段index test1{***} 表明爲哪一個數據源建立索引,與source *** 是成對出現的,其中的source參數的值必須是某一個數據源的名字。
其餘參數能夠查看手冊,這裏再也不贅述。
生成索引:
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf --all
其中參數--all表示生成全部索引
固然也能夠是索引的名字例如:
/usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx.conf test1
執行後能夠在/usr/local/coreseek/var/data目錄中看到多出一些文件,是以索引名爲文件名的不一樣的擴展名的文件
在不啓動sphinx的狀況下便可測試命令:
(這是開啓sphinx的命令行搜索就是說 number是你要查詢的數據名稱)
/usr/local/coreseek/bin/searchd -c /usr/local/coreseek/etc/sphinx.conf
(searchd是開啓sphinx的搜索服務功能)
Php操做linux上的sphinx
在站點域名目錄下建立一個文件列如test.php
在test.php文件中寫入以下內容;
(注意與test同級須要將自己的sphinxapi類加載進來)
<?php
header("content-type:text/html;charset=utf8");
include'./sphinxapi.php';
$sphinx= new SphinxClient();
$sphinx->SetServer('你linux上的ip地址',9312);
$res=$sphinx->Query("搜索字段","*"); //這裏的*表明匹配全部定義好的規則
print_r($res);
?>
vim /etc/rc.local 自啓動文件夾