??之前記錄過一篇Sphinx在Windows上的安裝步驟,這篇當然就是Linux系統(tǒng)的安裝步驟啦
1. 下載sphinx包
下載的是當前最新版3.1.1,我將壓縮包存在了/usr/local/src/
目錄下
wget -q http://sphinxsearch.com/files/sphinx-3.1.1-612d99f-linux-amd64.tar.gz
下載時間可能比較長需要耐心等待一會
2. 解壓
tar zxf sphinx-3.1.1-612d99f-linux-amd64.tar.gz
解壓
mv sphinx-3.1.1 sphinx
重命名一下,方便操作吧
cd sphinx
進入看下目錄列表,其中var是需要后面創(chuàng)建的,請繼續(xù)往下看
3. 編輯配置文件
配置文件在etc
目錄下,有兩個配置文件示例,其中sphinx.conf
是完整版的配置項,并且有英文注釋,有興趣的可以了解一下,我們這里使用下面的sphinx.conf.dist
簡潔版
復制一份sphinx.conf.dist
到bin
目錄下,重命名為sphinx.conf
vi sphinx.conf
打開編輯配置文件,這里我直接貼出我自己的配置內(nèi)容,可以正常跑起來的,關于其他配置項可以看我的另外一篇Sphinx 配置文件sphinx.conf配置項全解析
//數(shù)據(jù)源配置,也就是數(shù)據(jù)來源
source item
{
type = mysql
sql_host = HOST //數(shù)據(jù)庫
sql_user = USER //用戶名
sql_pass = PASS //數(shù)據(jù)庫密碼
sql_db = poster 數(shù)據(jù)庫名稱
sql_port = 3306 # optional, default is 3306
sql_query_pre = SET NAMES utf8
sql_query = \
SELECT id,name,UNIX_TIMESTAMP(ctime) \
FROM item
sql_attr_timestamp = ctime
}
//索引配置
index item
{
source = item //數(shù)據(jù)源
path = /usr/local/src/sphinx/var/data 索引存放目錄
min_word_len = 1
ngram_len = 1
ngram_chars = U+3000..U+2FA1F
}
indexer
{
mem_limit = 128M
}
//搜索服務
searchd
{
listen = 9312
listen = 9306:mysql41
log = /usr/local/src/sphinx/var/log/searchd.log
query_log = /usr/local/src/sphinx/var/log/query.log
read_timeout = 5
max_children = 30
pid_file = /usr/local/src/sphinx/var/log/searchd.pid
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
binlog_path = /usr/local/src/sphinx/var/data
}
配置文件中需要配置幾個目錄.分別是log,query_log,pid_file,binlog_path,我們回到sphinx下,新建一個目錄var,然后進入再新建一個data目錄和一個log目錄
mkdir var
cd var
mkdir data
mkdir log
如圖:
- 建立索引
首先進入到bin
目錄下,執(zhí)行下面的指令
./indexer -c sphinx.conf item
item為剛才在配置文件中建立的索引名稱
這里有個大坑,耽誤了好久時間,我用的是ubuntu的系統(tǒng),當我在執(zhí)行
./indexer -c sphinx.conf item
時,出現(xiàn)了一個錯誤:sql_connect: failed to load libmysqlclient (or libmariadb),加載libmysqlclient失敗,然后我在/usr/lib/x86_64-linux-gnu/目錄下發(fā)現(xiàn)了我的libmysqlclient,并不是沒有安裝的libmysqlclient
然后我通過google試著找出問題的答案,然而只有兩個相關結(jié)果,解決方式是建立軟鏈接,并且將libmysqlclient所在的目錄加入到環(huán)境變量,我照做了之后發(fā)現(xiàn)問題并沒有順利解決,最后,我試著下載所有的依賴
apt-get install libmysqlclient18 libmysqlclient-dev libmysqlcppconn7 libmysqlcppconn-dev
等待完成,然后忽略error,執(zhí)行
apt-get update
等待結(jié)束后,再執(zhí)行建立索引命令,解決了這個問題
5. 開啟搜索服務
./searchd