linux安裝sphinx

來源:互聯網
上載者:User

1、去sphinx下載相應的包:sphinx-0.9.8.1.tar.gz(建議安裝文檔版本)

解壓sphinx源碼包:

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

2、運行configure配置程式:

  • $ ./configure [options]

    有一些參數可以在配置的時候指定,主要如下:

    --prefix, 指定sphinx安裝到系統的那個位置; 例如 --prefix=/usr/local/sphinx

  • --with-mysql, mysql的安裝目錄,指定如果自動偵查mysql的相關庫檔案失敗後到哪個目錄尋找 ,這個是必須要配置的。
  • --with-pgsql, 同上,只是用於pgsql的(關於pgsql可以查看http://www.pgsqldb.org/pgsqldoc-cvs/plpgsql.html#PLPGSQL-OVERVIEW)

如下:./configure --prefix=/usr/local/sphinx --with-mysql=/usr/local/mysql

3、編譯:

          $ make

          在這個步驟,可能遇到一個問題,就是報 sphinx undefined reference to 'libiconv' 的錯誤,解決辦法是修改 /src/MakeFile(注意是src下的Makefile不是csft下的Makefile),編輯LIBS = -lm -lexpat 後面添加-liconv,即將該行該為:
          LIBS = -lm -lexpat -liconv -L/usr/local/lib

 4. 安裝
  
          $ make install

          如果編譯中沒有產生錯誤,這個步驟應該不會遇到問題。如果完成後未正確安裝,就要回去找make過程中遇到的錯誤了。
         其實這裡可以把3和4一起運行,make & make install
     5. 運行測試
         
          $ cd /usr/local/sphinx/etc
          $ cp sphinx.conf.dist sphinx.conf
          $ vi sphinx.conf

          這裡,sphinx提供了一個簡單的例子,基本步驟是先將/sphinx/etc下面的sphinx.conf.dist重新命名為sphinx.conf,然後修改sphinx.conf其中的配置,主要是修改你伺服器上面的mysql的使用者名稱、密碼、使用的資料庫等。修改的位置是sphinx.conf的source src1下面幾行。

          $ mysql -u test < /usr/local/sphinx/etc/example.sql

          這裡是匯入sphinx準備的測試資料,我們把資料匯入到mysql的test資料庫中。當然,這裡的資料庫要和你上面的設定檔(sphinx.conf)中指定的sql_db值相同。注意,運行這個命令的話,如果你的mysql命令沒有加入到環境變數中,就需要用完整路徑,同時可能需要輸入密碼。比如你的mysql安裝在 /usr/local/mysql 目錄中,root賬戶的密碼是 xxxxxx ,那麼命令應該調整為:
          $ /usr/local/mysql/bin/mysql -uroot -pxxxxxx test < /usr/local/sphinx/etc/example.sql
(這裡我在啟動並執行時候總是報example.sql有語法錯誤,看了檔案沒有發現什麼錯誤,mysql用的是root許可權。後來沒得辦法只有複製一條條的語句執行,發現有些地方的空格複製到命令列下面,會有些過濾掉。)
          $ cd /usr/local/sphinx/etc
          $ /usr/local/sphinx/bin/indexer --all
         (這裡一定要用全部路徑來運行,除非你在環境中配置了,要不會報錯。說indexer不存在)
         
這個命令是建立索引,當然資料基礎是剛剛匯入的example.sql的資料,如果這裡出錯,最大的可能是你的sphinx.conf中的資料庫配置錯了,你需要回去檢查並修正。但是,還有可能出現sphinx必須的庫檔案無法找到,例如出現以下兩種錯誤:
          /usr/local/sphinx/bin/indexer:
error while loading shared libraries: libmysqlclient.so.15: cannot open
shared object file: No such file or directory
         
/usr/local/sphinx/bin/indexer: error while loading shared libraries:
libiconv.so.2: cannot open shared object file: No such file or directory
          這主要是因為你安裝了一些庫後,沒有能夠配置相應的環境變數。你可以通過建立串連的方式修正這個問題,運行如下命令:
          ln -s /usr/local/mysql/lib/libmysqlclient.so.15 /usr/lib/libmysqlclient.so.15(這裡是so.15還是so.16自己要到安裝的mysql/bin/mysql下面看看)
          ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
          這裡我假設你相應的軟體包安裝在/usr/local/xxx 目錄下,如果你不是安裝在相應目錄下,你就需要使用你自己的路徑。如果你沒有安裝libiconv軟體包,則需要安裝下,這個安裝比較簡單,就不多說了。
          如果還出現類似錯誤,照上面的方法修正。

          $ cd /usr/local/sphinx/etc
          $ /usr/local/sphinx/bin/search test

          上面的命令是搜尋測試,測試的關鍵詞就是 test 了,如果成功的話,你應該看到搜到的結果,出現字串“index 'test1': query 'test ': returned 3 matches of 3 total in 0.000 sec”,後面跟的是結果表示成功了。

          $ cd /usr/local/sphinx/etc
          $ /usr/local/sphinx/bin/searchd

          運行上面的命令,你就啟動了sphinx進程了,如果沒什麼錯誤,可以通過ps -aux|grep '3312' 找到sphinx進程了。哈哈,大功告成!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.