考慮到你的地方存儲在數據庫中的數據:SQL - 與LIKE操作搜索數據庫
Hello my name is Tom I like dinosaurs to talk about SQL.
SQL is amazing. I really like SQL.
我們要實現一個網站搜索,讓遊客進入條件並返回相關記錄。用戶可以搜索:
Dinosaurs
和SQL:
WHERE articleBody LIKE '%Dinosaurs%'
科佩斯罰款返回正確的記錄集。
但是,如果用戶誤拼恐龍,我們將如何應對? IE:
Dinosores
(可憐的dino)。我們如何搜索允許拼寫錯誤?我們可以將我們在搜索中看到的常見拼寫錯誤與正確的拼寫關聯起來,然後搜索原始詞語+已糾正的詞語,但這需要很長時間才能維護。
以任何方式編程?
編輯
顯示SOUNDEX可以幫助,但任何人都可以使用同音其中輸入搜索項給我一個例子:
Dinosores wrocks
返回記錄,而不是這樣做的:
WHERE articleBody LIKE '%Dinosaurs%' OR articleBody LIKE '%Wrocks%'
哪個會返回squadoosh?
Levenshtein距離或者探測法 – 2011-03-03 15:26:00
根據您正在使用的數據庫的例子......有一些可以用來獲得一個文字「匹配」,「探測法」功能聽起來像...... – 2011-03-03 15:26:26
我不認爲這可以純粹在SQL中完成。通配符搜索已經很慢了。我寧願使用像Apache Lucene或Solr這樣的成品。 – Wukerplank 2011-03-03 15:28:47