sphinx教程2__安裝、配置和使用

g4219269y 8年前發布 | 16K 次閱讀 Sphinx 搜索引擎

來自: http://blog.csdn.net//clh604/article/details/34105065


從sphinx網站下載sphinx源碼包,我使用的是sphinx2.1.6

一、安裝

      步驟如下:

放在任意目錄下,解壓sphinx源碼包:

$ tar xzvf sphinx-2.1.6.tar.gz
       $ cd sphinx

運行configure配置程序:

$ ./configure [options]

參數配置的時候指定,主要如下:

--prefix , 指定sphinx安裝到系統的那個位置; 例如 --prefix=/usr/local/sphinx
        --with-mysql, mysql的安裝目錄,指定如果自動偵查mysql的相關庫文件失敗后到哪個目錄查找 
         --with-pgsql, 同上,只是用于pgsql的。 
       配置示例:./configure --prefix=/usr/local/sphinx --with-mysql=/usr/local/mysql

其他配置參數:

   --with-mysql=/usr/local/mysql/

--with-mysql-includes=/usr/local/mysql/include/mysql/

 --with-mysql-libs=/usr/local/mysql/lib/mysql/

         --with-mmseg=/usr/local/mmseg/ 
         --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ 
          --with-mmseg-libs=/usr/local/mmseg/lib/


           編譯: 
          $ make
          在這個步驟,可能遇到一個問題,就是報 sphinx undefined reference to 'libiconv' 的錯誤,解決辦法是修改 /src/MakeFile(注意   是src下的Makefile不是csft下的Makefile),編輯LIBS = -lm -lexpat 后面添加-liconv,即將該行該為:
          LIBS = -lm -lexpat -liconv -L/usr/local/lib
          安裝
   
          $ make install
          如果編譯中沒有產生錯誤,這個步驟應該不會遇到問題。如果完成后未正確安裝,就要回去找make過程中遇到的錯誤了。

  二. 配置和啟動sphinx服務

         1、編寫配置文件 (安裝后在 /usr/local/sphinx/etc/目錄下有個sphinx.conf.dist文件,直接把文件名改成shpinx.conf就行了)
           vim /usr/local/sphinx/etc/sphinx.conf
          把其中的數據庫信息修改自己mysql服務器信息,同時不要忘了修改相應的表名前綴。

       2、導入測試數據,

進入mysql>  source /usr/local/sphinx/etc/example.sql

3、生成索引文件

 /usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --all
       索引生成成功的話會在 /usr/local/sphinx/var/data下生成相應的索引文件

4、啟動sphinx搜索服務

usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/sphinx.conf

默認shpinx會在端口9312、9306兩個端口上監聽,其中9312端口是走的shpinx協議,走這個端口需要通過api、shpinx自帶的search客戶端、mysql的shpinxSE引擎來訪問,而9306走的是mysql41協議,這個端口可以直接通過mysql客戶端連接,然后進行相關的搜索查詢


三、搜索查詢

1、通過Sphinx自帶的search(在bin/目錄)就可以在命令行進行搜索: 
cd /usr/local/sphinx
./bin/search -c sphinx.conf test

運行后,系統提示一堆信息:
....
....
words:
1. 'test': 36 documents, 123 hits
這個表示庫中有36條記錄符合要求,出現test的有123處。

2、通過shpinx api訪問

在下載的shpinx源碼目錄中有個api文件夾,該文件夾下提供了php、java、ruby、python通過api來訪問sphinx搜索的例子

php test.php test      就會查出包含test關鍵字的相關數據

sphinxapi.php

php也有相應的shpinx擴展

3、通過mysql41協議訪問

mysql -h127.0.0.1 -P9306

具體的查詢方法參考http://sphinxsearch.com/docs/2.1.7/sphinxql-reference.html

4、在mysql中通過shpinx引擎訪問

mysql shpinx引擎插件的安裝參考我的另一篇文章:http://blog.csdn.net/clh604/article/details/34101313

sphinx查詢語句的寫法請研讀shpinx官方文檔:http://sphinxsearch.com/docs/2.1.7/sphinxse-using.html

現在我的需要被索引的數據如下圖(就是shpinx安裝后提供的測試數據,索引配置也是shpinx給的默認的---默認的就是針對這個測試數據的)


然后創建shpinx引擎索引表:
CREATE TABLE sph1
(
    id          INTEGER UNSIGNED NOT NULL,
    weight      INTEGER NOT NULL,
    query       VARCHAR(3072) NOT NULL,
    group_id    INTEGER,
    INDEX(query)
) ENGINE=SPHINX CONNECTION="sphinx://127.0.0.1:9312/test1";




 本文由用戶 g4219269y 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!