14

たとえば、Firefox の右上の google/yahoo 検索ボックスに何かを入力すると、ある種の「オートコンプリートの提案」が表示されます。

別の例は、YouTube の検索ボックスと、この質問のプレビューのすぐ下にある Stackoverflow タグの編集ボックスにあります。それらはどのように機能しますか?それらの背後にあるテクノロジーは何ですか?

4

9 に答える 9

9

それらの背後にあるテクノロジーは何ですか?

その下でどのデータ構造が使用されているか疑問に思っている場合は、「trie 」と呼ばれます。また、 「 DAFSA 」を使用すると、試行よりも少ないスペースを使用できます。

それらはどのように機能しますか?

両方ともツリーとして実装され、ツリーの各ノードは文字列内の 1 文字に対応し、前に現れる文字は後に現れる文字の親になります。たとえば、文字列 "tap"、"taps"、"top"、"tops " Trie (左) と DAFSA (右) に格納されているため、タップを入力し始めると、入力された文字に基づいてツリーが走査され、各単語に割り当てられた重みに基づいて候補が表示されます。重みが割り当てられる場合があります。単語の使用頻度に基づいています。

ストリングス

最悪の場合の文字列の検索は、文字列の長さを m として O(m) 時間です。

画像はウィキペディアの記事から参照されています:DAFSAtrie

于 2016-09-04T16:13:50.253 に答える
8

これは AJAX を使用して行われます。このサイトには素晴らしいチュートリアルがあります: AJAX Suggest Tutorialと、Web サイトがダウンしているように見える WaybackMachine バージョンです。

私の知る限り、キーワードと少しのコードを含むデータベースがすべてです。

私は今、実際に仕事でそれを使用する方法を学んでいます。:)

別のリソースはw3schoolsです。彼らもそれをカバーしました。

于 2008-12-08T11:06:08.720 に答える
4

彼らは通常、JavaScript を使用して次のことを行います。

  • すべての可能な値のローカル配列を見てください
  • バックグラウンドで別のページ (つまり、/autocomplete.php?q=partialText) をリクエストします。
  • Web サービスを呼び出します。

JavaScript に表示するエントリのリストがある場合、オートコンプリート ボックスを表示するようにページが変更されます。

ウェブサイトにオートコンプリート ボックスを配置したい場合は、私が使用したところ、次のものが非常に優れていることがわかりました。また、人気のある jQuery フレームワークに基づいています。

jQuery オートコンプリート プラグイン

于 2008-12-08T11:09:31.740 に答える
3

とても簡単です。

クライアント側:

  1. フォーム フィールドでキーストロークを取得する
  2. キーストロークで、サーバーに AJAX リクエストを送信します
    1. 別のキーストロークがすぐに入力された場合、現在の AJAX リクエストは廃止されているため、キャンセルします
    2. フォーム フィールドの更新された文字で要求された新しい AJAX を作成します。
  3. サーバーの応答をクライアントに表示する

サーバ側:

  1. すべての単語はすでにアルファベット順にバケット化されています
  2. クライアントから「ove」のリクエストがあった場合、ove で始まるすべての単語を人気順に検索します
  3. 上位一致をクライアントに返す
于 2009-02-01T17:12:23.943 に答える
1

Smashing Magazineの記事 (以下のリンク) には、優れたオープンソースの Country セレクターがあり、プレーンなオートコンプリートソリューションでのユーザビリティの課題についての議論が含まれており、それらを修正しています。

私は開発者ではなく UX ですが、賢明な開発者であれば、国名だけでなく、他の種類の選択を処理するためにこのオープンソース コードを適応させることができると確信しています。:)

免責事項: 私は、この国のセレクターを作成した人々とは何の関係もありません。私はたまたまそれを知っており、ユーザビリティに関する情報を開発者である FWIW と共有したいと思っています。

于 2013-12-04T19:00:03.650 に答える
0

これにはさまざまな実装があるのと同じくらい多くの答えがあります。Stackedでサンプルを確認できる AutoCompleter は、必要なコントロールを ControlCollection に設定する .ASPX ページの分離コードで処理されるイベントを発生させることによって機能します。ただし、テキスト コンテンツがアンカー リンクであるリテラル コントロールのみを使用してスタックされています。しかし、必要に応じてチェックボックスや画像を追加することもできます...

ASP.NET を使用している場合は、AutoCompleter から始めるのが最適です。「何か他のもの」を使用している場合は、おそらく ScriptAculous AutoCompleter が開始するのに最適な場所です...

于 2008-12-08T11:44:26.537 に答える
0

私は最近、オートコンプリート機能にも取り組んでおり、オートコンプリートに表示されるテキストにインデックスを付けるために lucene を使用しました。検索は lucene で高速です。オートコンプリート データを操作する際の注意点:

  1. 提案の新鮮さ、
  2. 長期データへの依存、
  3. 地域依存、
  4. 言語依存
于 2015-11-09T08:38:06.703 に答える
-1

これは MooTools 用のものです

于 2009-02-01T17:19:36.223 に答える