2012-01-11 46 views
1

你能給我一些提示,我如何根據用戶輸入的單詞生成建議?它不是一個拼寫錯誤的東西,我不想當用戶輸入單詞「hello」時,如果數據庫不包含單詞「hello」,但單詞「helo」或「helol」表明這一點。基於數據庫生成建議(PHP和MySql)

謝謝。

回答

2

它一個很好的線程FYI

你應該看看PHP的levenshtein功能,此發現基礎上的得分最接近匹配的話,使用字典文件...我知道你說這不是拼寫錯誤,但字典文件可以是任何東西,你可以有多個,這取決於你想如何使用它

1

這對於單獨使用MySQL來說太複雜了。您需要使用Sphinx Search(獨立的全文搜索引擎)等索引常用詞彙,然後針對Sphinx運行查詢。

有一個在http://sphinxsearch.com/forum/view.html?id=5898

+0

這就是我要去的方式 – Prof83 2012-01-11 09:06:06

+0

我不想只使用mysql,我在標題,PHP和MySql中說過,但謝謝你的回答 – keepwalking 2012-01-11 09:18:13

1

你可以使用Soundex function並比較提交的字符串到一個dictionnary dat即:

soundex("Hellllo")  == soundex("Hello"); 

所有你需要做的就是將你的建議soundex存儲在一張表中。然後,當用戶提交一個單詞時,可以在表格中搜索他的soundex散列並返回具有相同/相近發音的單詞。

soundex方法速度很快,但如果您需要性能,則必須對您的字典進行索引。