簡體   English   中英

在php / mysql中搜索拼寫錯誤的最佳方法是什么?

[英]What's the best way to implement typo correction into a search in php/mysql?

我有一個列出電影的網站。 當然人們在搜索電影時會犯拼寫錯誤,當然有些電影有撇號,用字母拼出標題中的數字等等。

如何讓我的搜索腳本忽略這些錯誤? 可能需要比WHERE mov_title LIKE '%keyword%'更聰明的東西。

有人建議我使用全文搜索引擎,但所有這些看起來都非常復雜,我覺得將它們構建到我的應用程序中就像地獄一樣。 如果我必須使用一個,哪個是最不具侵入性的,那么在現有代碼中實現最無痛苦?

我認為你必須實現一個外部全文搜索引擎。 MySQL只是不擅長全文搜索。 我會說你應該給Lucene一個去( 教程 )。 Zend Framework有一個插入Lucene 的API ,使其更容易學習和使用。

假設你使用MySQL - MySQL沒有能夠做到這一點的內置功能。

這意味着您必須自己實施全文搜索,或使用第三方全文搜索工具。

  • 如果你自己實現它,你應該調查metaphone雙metaphone算法(我推薦它們超過soundex,這在這類任務上並不是那么好),以存儲所有單詞的phoenetic表示。 但是,建立自己的全文搜索對於膽小的人來說不是任務。 如果您不認為自己是數據庫向導,請不要嘗試它。
  • 如果你想要第三方工具, Lucene就是你的選擇。 它被移植到許多不同的語言/平台, 包括PHP - 您不必使用Java。

我既不使用php也不使用mysql,但是全文搜索的替代方法可能是soundex搜索

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM