コンテンツ アシストは、部分的に入力された文字列の候補補完のリストを提供します。
コンテンツ アシストは、部分的に入力された文字列の候補補完のリストを提供します。
説明は大まかに上記のとおりですが、より正確に説明する方法がわかりません。
sublime にはこの機能があり、「不完全な文字」を入力すると、その文字を含むすべての結果が返されます。例: ds と入力すると、中央に文字 e があっても、desk が取得されます。
これがどのように達成されるのか、またその原理は何なのかを知りたいのです。
また、この関数には名前がありますか (実際、この関数を何と呼ぶべきかわからないので、インターネットで答えを探すのにも役立ちます)。
@boxsnake は、配列の検索の例を示しました。返された結果は最も高い優先順位を持ち、連続した「ds」が含まれています。 「みんな」もヒットするはずです、「d」が含まれています。
キーワードが多い場合、配列の検索にかかる時間が非常に長くなり、速度は基本的に許容できなくなります。
効率的で実現可能な方法は、文字列検索ツリーを使用することです。
大量データ処理のためのトライツリー(辞書ツリー)
この機能は「スマートヒントの検索」と呼ぶべきです
実装方法はたくさんありますが、私が知っているのは最も単純で理解しやすい方法だけです。複雑なクエリ アルゴリズムが最適化されており、より効率的であり、動的プログラミングの問題が含まれる可能性があります。
最も簡単な方法であれば、文字列を分割し、2 文字ごとに
.*
を置き、正規表現を生成し、この正規表現を使用してリストと一致させることですJS疑似コード:
デモンストレーション効果: