程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JavaEye3.0開發手記之三 - 獅身人面

JavaEye3.0開發手記之三 - 獅身人面

編輯:關於JAVA

Sphinx的含義是“獅身人面像”,是古埃及的金字塔建築,傳說Sphinx是有翼的獅身女怪,她常叫過 路行人猜謎, 猜不出者即遭殺害。

但是我這裡說的Sphinx是一個高性能的搜索引擎:

http://www.sphinxsearch.com/

Sphinx是一個俄國人開發的搜索引擎,它的主要特點是:

一、性能非常出色

150萬條記錄一兩分鐘就索引完畢,2-4GB以內的文本檢索速度不到0.1秒鐘。ferret也望塵莫及,更不 要說lucene了。

二、和數據庫集成性很好

Sphinx通過配置文件可以自行讀取數據庫信息做索引,不依賴任何外部的應用程序,並且可以作為一 個daemon進程啟動,支持分布式檢索,並發響應性能很好。因此很多過去使用ferret的人因為並發檢索的 問題都改用Sphinx了。

三、可以做MySQL的全文檢索

MySQL的數據庫引擎是可插拔的結構,Sphinx開發了一個SphinxSE數據庫引擎,可以在編譯MySQL的時 候直接編譯到MySQL裡面去,這樣的話,可以在數據庫級別支持高性能的全文檢索,那麼你可以以如下SQL 方式去全文檢索了:

select * from xxxx where query='test;sort=attr_asc:group_id' AND ....;

很棒吧。

四、RoR支持也很棒

有一個acts_as_sphinx插件,類似acts_as_ferret,集成到RoR裡面很簡單。

Sphinx目前可能存在的問題估計還是中文分詞問題:

Sphinx支持UTF-8編碼的分詞,但是他自己的文檔上面說僅僅支持英文和俄文的分詞,因此我估計對中 文分詞可能還不能很好的支持。

總之,Sphinx是我們另外一個很棒的選擇。

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