2010-11-29 121 views
1

我需要一個搜索引擎爲我正在建設的網站。我決定嘗試使用php和mysql。目前看起來可行的選擇是創建三個表。php,mysql搜索網站

一個字,一個頁和一個參考表。然後,當我插入一篇新文章時,我會掃描文本並將單詞放在單詞表中,並將這些單詞引用到第三張表格中。

最後進行搜索時。該腳本應返回給定單詞的索引詞最多的頁面。

但是看起來這種方法只能根據關鍵字的數量返回結果。文章中使用的關鍵字越多,結果頁面上出現的關鍵字越高。因此,關鍵字較少的文章可能與搜索更相關,但結果會更低。

問題是有沒有更好的方法來創建一個使用PHP/MySQL的自定義搜索引擎?另外如果你沒有訪問服務器來安裝像Sphinx這樣的搜索引擎,解決這個問題的最好方法是什麼?

回答

2

我以同樣的方式構建了一個搜索引擎,但是我構建了一個交叉表,將每個單詞鏈接到它出現的每個頁面。在該表中,我還存儲了頁面出現在頁面中的次數與頁面的長度有關。我計算出你是否喜歡這個詞在頁面上的單詞的百分比。 這樣可以更輕鬆地將權重應用於搜索結果。 但不幸的是很難確定一個頁面是否在其他方面更相關。 Google使用一些技巧,例如頁面上兩個關鍵字之間的距離。如果他們彼此接近,他們可能是相關的。如果頁面中的關鍵字較高,則可能更重要,等等。

但是,Google也使用完全不同的數據庫結構,這種結構更適合這類查詢。在MySQL中構建它可能很困難。

如果MySQL的FullText索引對你有幫助,你可以試試。它爲你的頁面建立索引,你可以使用MATCH查詢,這會爲每一行返回一個分數。我不知道在那裏使用了什麼公式,但它似乎很聰明。

如果你的所有網頁都是公開的,你可能要考慮使用谷歌自定義搜索或類似的東西。它會爲你節省很多時間。

0

我第二EL雅博,如果你要爲你將與Lucene的客戶更好的運氣一個完全成熟的搜索引擎,但如果你正在尋找一個快速的解決方案谷歌自定義搜索引擎是最好的。