2017-11-18 6 views
-3

SQLiteデータベースからデータを選択する必要があります。しかし、ユーザーが場所の名前を入力できる検索フィールドがあります。彼らがこの名前をタイプするかもしれないので、私はこれに応じてデータベースから関連するレコードを描くことができる必要があります。例えば私のAndroidアプリでタイプミスのSQLiteの選択

入力:フェリスWhrrl

実際:観覧車

それはタイプミスにもかかわらず、正しく観覧車エントリを見つけなければなりません。 editdist3はAndroidのSQLiteには実装されていないことに気付きました。私はむしろ、データベース全体をRAMに選択せず、すべての文字列をループし、手作業でLevenshteinの距離を計算するのではなく、これはスーパーリソースを集中的に使用するためです。

ご協力いただければ幸いです! :)

+0

LIKE演算子を使用してみてください。 –

+0

LIKE演算子はタイプミスを近似するのに役立ちません。/ – ashiswin

+1

LIKE演算子を使用すると、潜在的な一致を素早く突き止めることができます。そして、より小さなセットをlevenshteinすることができます。これは@BernoulliGateの可能性が高いものです。 –

答えて

-1

正しい単語を推測するには、AIシステムを作成する必要があります。私はこれがSQLやAndroidには関係ないと思う。

オンラインAIシステムを使用して、正しい単語を推測することができます。

0

あなたができることは、最近の検索エンジンのように自動提案機能を実装することです。

新しい文字を入力すると、必要に応じて値を検索してキャッシュする動的アルゴリズムを実装できます。ただし、外部サービスの助けを借りずにベアメタルを操作するだけであれば、データベースやその他のコンテキスト変数のサイズによってはリソースに問題が発生します。

適切なインデックスを持つことは役に立ちますが、私はまだ配列にすべての必要な値をロードして検索を高速化すると思います。

関連する問題