2010-08-02 241 views
0

我正在嘗試爲網站構建搜索引擎。它主要是一些PHP和HTML/CSS頁面的集合。現在就是這樣。我在網頁上的所有內容。網站搜索引擎

從我的理解能夠做到這一點,我需要有一個數據庫上的內容,我是否正確?

如果是這樣,我正在考慮這樣做,創建一個四列「關鍵字」「標題」「內容」和「鏈接」的MySQL表。

  • 關鍵字 - 將保留一個詞,如果它在查詢中將顯示這是最可能的結果。
  • 標題 - 搜索關鍵詞後,搜索標題產生最相關的結果
  • 內容 - 要尋找的東西最後的資源,因爲它會被梅西耶我相信
  • 鏈接 - 僅僅是屬於特定鏈接行。

我將用PHP和MySQL來實現它,並且將所有內容,標題等放入數據庫中將會很麻煩。這是一個好方法還是我應該看別的東西?

謝謝。

---------------編輯-------------------

Lucene似乎是一個不錯的選擇,然而,即使在閱讀入門指南並在網上瀏覽一下,我也無法理解它是如何工作的,有人能指出我在某個地方以非常基本的方式解釋了這一點嗎?特別考慮到我不知道如何編譯任何東西。

謝謝。

+2

寫一個(好的)搜索引擎是一項相當困難的任務。有許多現有的解決方案可能值得考慮 - http://www.sphider.eu/可能是適合的。 – 2010-08-02 12:31:12

+0

科林,謝謝你的建議,這正是我所需要的,非常感謝。乾杯。 – Kyle 2010-08-02 14:38:47

回答

1

Sphinxsearch是一個開源的全文搜索服務器,從頭開始設計性能,相關性(又稱搜索質量)和集成簡單性。

Sphinx讓您可以批量索引和搜索存儲在SQL數據庫,NoSQL存儲中的數據,或者快速簡單地存儲數據 - 或者即時索引和搜索數據,與Sphinx幾乎一起作爲數據庫服務器。

+0

唯一要指出的是,它當然需要安裝在服務器上(他可以或不可以這樣做,我不知道)。 – nico 2010-08-02 12:33:01

2

從頭開始構建搜索引擎是很痛苦的。確實,這是一個有趣的任務,所以如果是爲了學習,那就去做!

但是,如果您只需要爲您的網站提供一個好的搜索功能,請使用其他人爲您完成的工作。 Apache Lucene是一種選擇。

0

我假設你的頁面是靜態的HTML。您可以一次完成兩件事,並將數據庫中的頁面內容傳輸到數據庫中,以便通過從數據庫中讀取內容來即時生成這些內容。

無論如何,我認爲你的策略至少對於一個基本的搜索引擎是可以的。也看看MySQL fulltext search

0

MySQL全文搜索將是最容易設置的,但它會比Sphinxsearch慢很多。即使Lucene比獅身人面像慢。所以,如果速度是一個標準,我會建議抽出時間來傾斜和實施獅身人面像。

在他的一篇演講中,Andrew Aksyonoff(Sphinx的創建者)提出了以下 基準測試結果。大約有350萬條記錄,其中約5 GB的文字被用於 的目的。

  MySQL Lucene Sphinx 

索引時間,min 1627 176 84

索引尺寸,MB 3011 6328 2850

匹配所有,MS/Q 286 30 22

匹配短語,ms/q 3692 29 21

匹配布爾排名前20位,MS/Q 24 29 13

從一個基本的搜索

除此之外,還有很多功能,使獅身人面像的 搜索一個更好的解決方案。這些功能包括閥組屬性,符號化的設置,詞形等, HTML處理,geosearching,排名和其他許多

0

Zend Lucene是搜索的純PHP實現這是非常有用的。

另一個搜索選項是solr,它基於lucene,但是爲了產生更多的google結果而做了很多繁重的工作。除了使用Mysql MyISAM全文搜索功能外,這可能是最簡單的選擇。