2012-02-15 63 views
3

我想爲我的網站做一個搜索選項,爲了好玩,我決定至少應該嘗試自己做(如果我失敗了,總會有谷歌自定義搜索)。鬆散的搜索方法

的問題是,我甚至不知道如何處理這個怪物!這裏是要求:

  • 並非所有關鍵字搜索需要(如果一個搜索「大歡樂世界」的同時,也會搜索「世界之大」,「歡樂世界」等)
  • 常見拼寫錯誤的考慮(從數據庫,通過編輯差或方法的常見錯誤的預定義列表(而不是=>而不是等)。在內容
  • 搜索和帖子的標題,與標題的emphesis。
  • 不吸

我已經搜索了我的老朋友谷歌它,但我發現的唯一合理的事情是關於這個問題的學術級文件(英語不是我的本地人,我很好,但不是很好=()。

所以簡而言之:沒有人知道一個好的開始,教程,文章,例子嗎?

在此先感謝。

+0

所以,做你真正想要構建一個全文搜索引擎(這就是這些通常被稱爲),或者你想現有的項目建議,這些建議將這一工作呢? – 2012-02-15 21:15:49

+0

我想嘗試構建一個文本搜索引擎(對於帖子數量不多的單個網站),但現有的項目也將非常受歡迎。 – 2012-02-15 21:16:50

回答

2

如果你想創建自己的搜索引擎,apache lucene是可以爲你的功能的重要組成部分的護理成熟的開源庫。

使用Lucene,你先索引你的信息[使用IndexWriter。這是離線完成的,以創建索引。
在serach上 - 您使用IndexSearcher來查找與您的查詢匹配的文檔。

如果您想對「如何運作」,你應該多看關於information retrieval一些理論知識。一個良好的開始是斯坦福大學的introduction to information retrieval

5

有幾個選項,你可以嘗試:

  • 的Apache Lucene的(一個基於PHP實現在Zend框架存在)
  • ElasticSearch(Lucene的頂部提供了一個類似於REST的API)
  • Xapian的
  • 獅身人面像

大概一堆別人的了。

+0

+1 - Sphinx是一個很好的開源搜索服務器。 – 2012-02-15 21:22:57