我正在構建一個應用程序,用戶在其中輸入一段文本。一旦提交,我需要檢查該文本塊是否包含來自我預先定義的單詞列表中的單詞。
單詞列表很大,大約在50K左右,所以我需要找出一種方法,我可以高效快速地完成檢查。
這裏有一些解決方案,我想過了,但他們似乎真的效率低下如何有效地檢查給定的字符串是否包含數組中的單詞
選項1: 創建的應用程序代碼的函數,僅僅通過每個預定的字,並檢查循環,如果這個詞是塊文字
如
var wordList = ['fox','dog','tree']; //in my app this list will be large
function contains(userInput) {
for(i in wordList){
if(userInput.indexOf(wordList[i]) > -1)
return true;
}
return false
}
選項2: 文本和單詞列表的塊將被存儲在數據庫中,所以我可以做一個SQL語句,這樣
e.g
SELECT *
FROM UserInput ui
INNER JOIN WordList wl ON wl.word LIKE CONCAT('%', ui.InputText, '%')
有沒有更好的方式來做到這一點?