2012-06-13 36 views
1

這個問題可能看起來很幼稚。 我不想一個人獨自一人到達這家大公司的力量。MySQL搜索自動完成喜歡亞馬遜

問題:當你去http://www.amazon.com嘗試搜索「哈利波特」,而是輸入:「哈利波特」。

你會看到這樣的結果:

  • 哈利波特
  • 在書籍哈利波特
  • 在電影&
  • 哈利·波特電視

,問題是,我有一個巨大的帶有產品的MySQL數據庫。如何在其上實現這樣的搜索結果?

我知道Apache Lucene,但我想知道是否有更簡單的方法。

+3

周圍做「全文搜索」和「模糊匹配搜索」一番尋找 - 他們應該幫助你。你在用什麼語言(請相應標記)? – halfer

+0

[this]的可能重複(http://stackoverflow.com/questions/3208743/php-fuzzy-search-matching)? – halfer

+0

@halfer,感謝您對全文搜索的建議。這似乎是要走的路。還有問題,亞馬遜是否使用MySQL MATCH()函數或更復雜的東西來進行全文搜索? – DelphiLynx

回答

1

提交/ 1)記錄搜索字詞使用當前的數據庫 - resturucture的數據來優化關鍵字搜索

2)添加的onkeyup處理程序發送一個Ajax請求的服務器端(但使用一個互斥體,所以您只需一個電話同時優秀)

3)服務器端做對數據的關鍵詞查找1,並返回matchnig數據

4)當AJAX調用返回一個div中新添加的行作爲一個可點擊的條目層

這有什麼困難?你可以使用你喜歡的任何類型的數據庫。您可以使用任何您喜歡的服務器端編程語言。 Browserside你應該堅持javascript。

(如果你希望別人寫的代碼給你,那麼你可能需要向他們支付)

+0

感謝您的回覆,但是您列出的不幸並不是我的問題。 halfer提到的'全文搜索'似乎是解決方案。我去研究它。 – DelphiLynx

+1

MySQL的FULLTEXT搜索是非常非常有限 - 去研究如何做一個適當的關鍵字搜索。 – symcbean