2017-11-18 123 views
-3

我需要從SQLite數據庫中選擇數據。但是,我有一個搜索字段,用戶可以在其中輸入位置的名稱。因爲他們可能錯誤地輸入這個名字,我需要能夠根據這個從數據庫中提取相關的記錄。我的Android應用程序中的SQLite選擇與排錯

例如:

輸入:摩天Whrrl

實際:摩天輪

應該儘管錯字正確定位的摩天輪項目。我意識到editdist3沒有在Android SQLite中實現。我寧願不選擇整個數據庫到RAM中並遍歷所有字符串,並手動計算Levenshtein距離,因爲這將是超級資源密集型的。

任何幫助將不勝感激! :)

+0

嘗試使用LIKE運算符。 –

+0

LIKE運算符並不能幫助您逼近拼寫錯誤:/ – ashiswin

+1

您可以使用LIKE運算符來快速減少潛在匹配,然後使用更小的集合,這正是@BernoulliGate可能會遇到的問題。 –

回答

-1

這裏您需要創建一個AI系統來猜測正確的單詞。我認爲這與SQL或Android無關。

或者您可以使用在線AI系統來猜測正確的單詞。

0

我認爲你能做的最好的事情就是實現一個自動建議功能,就像現在所有的搜索引擎一樣。

您可以實現動態算法,在輸入新字母時根據需要搜索和緩存值。但是,如果您只是在沒有任何外部服務的幫助下在裸機上進行操作,則您也會遇到資源問題 - 這取決於數據庫的大小和其他上下文變量。

有一個合適的索引將有所幫助,但我仍然認爲將所有必要的值加載到數組中並且搜索速度更快。