全文搜尋 (Lucene 和 Ferret)

, , , , , , , at May 21st, 2007 by 小影

搜尋器改變了人們的習慣。當有能力在互聯網上用 0.01 秒的搜尋就找到想要的資料時,如果我們的軟件要花個幾秒甚至幾分鐘才找到資料,用家就會覺得這個軟件很差勁了。怎樣去做搜尋?最近單的方法莫過於 SELECT * FROM MYTABLE WHERE CONTENT LIKE '%KEYWORD1%' OR '%KEYWORD2%' 。我們的專案就是用這個方法搜尋用戶地址。這個方法完全沒有問題 -- 起碼 -- 在這一年多的開發、測試環境也沒有問題。直到在實際環境中 -- 有上百萬條記錄的資料庫 -- 這種搜尋對資料庫的壓力太大了。試想著每次也由頭到尾由「黃頁」找一個人吧。每條查詢花上2秒以上的時間,我們的系統可是有 3000 個同時的用家啊!全文搜索全文搜索是另一個方法。它的原理是把文件每一個字也加進索引中,就如查「黃頁」可以直接打開相關的頁數一樣,效率比傳統方法快上一個數量級。Lucene 是一個 Java 的全文搜索工具,利用它任何 Java 軟件也可以為任何文件作全文搜索。它分成兩部份:索引和搜尋。前者把文件經整理和分詞化成可以搜尋的索引;後者則由用者的查詢返回相關結果。Lucene 的擴展性很高,開發者可以編寫不同的 document parser 讓 lucene 支援任何文檔,擴展 Analyzer 以支援不同的語言,也可以自定 query parser 改變搜尋的特性。Lucene 的發展相當成熟,我可不用班門弄斧寫教學了,初學者請讀 IBM developerWorks 实战 Lucene,第 1 部分: 初识 Lucene  。Ruby ...

利用Lucene制作中文搜尋應用

, , at March 16th, 2005 by 小影

之前討論過想要有自行組合新聞的BLOG軟件,這種軟件最重要的部份就是搜尋和相似度統計的功能。要自行制作一個功能完整又效能高的搜尋器絕不容易,幸好早有開放源碼的軟件替我們做此工作。

我的軟件

, , , , , , at September 4th, 2004 by 小影

以下軟件對於大眾也許無任何用途,但也在此將它們集中起來以留記錄: delight - del.icio.us for mobile Ruby on Rails i18n del.icio.us bookmark Wiki Searcher 恒指平均市盈率 Lucene中文詞語分析器 (CWordAnalyzer) g4j - GMail API for Java (Sep 2004 - 2005) (sourceforge page) ESPN Soccernet Downloader (Aug 2004) Java IM Bot (July 2004) TD Learning Investment Agent (July 2003 - May 2004) Maze 3D (Late 2003) 重要聲明:這裏一切文字、圖片、檔案或軟件也僅作參考,本人一面盡力維持它們的真確和無害,但一切閱讀、下載或使用它們引致的硬體、軟體、肉體、心靈、金錢以致其他任何形式損失或不安本人概不負責。所有後果用者自負,如不同意者請勿閱讀、下載或使用,多謝合作!