独自のWebアプリケーションにGoogleサジェストを実装する方法(Pythonを使用するなど)
-
05-07-2019 - |
質問
私のウェブサイトでは、ユーザーはリンクを保存することができます。
指定されたフィールドにインターネットアドレスを入力している間、GoogleサジェストまたはChromeオムニバーに似た提案/オートコンプリートボックスを表示したいと思います。
例:
ユーザーはURLとして入力しています:
http://www.sta
表示される提案:
http://www.staples.com
http://www.starbucks.com
http://www.stackoverflow.com
車輪を再発明しないでこれを達成するにはどうすればよいですか? :)
解決
で試すことができます http://google.com/complete/search?output=toolbar&q=keyword
そしてxmlの結果を解析します。
他のヒント
これは、以前Djangoサーバーで1回実行しました。クライアント側とサーバー側の2つの部分があります。
クライアント側では、ユーザーが入力しているときにXmlHttpRequestsをサーバーに送信し、情報が戻ってきたら表示する必要があります。この部分には、コールバックやキープレスハンドラーなどのトリッキーな部分を含む、かなりの量のJavaScriptが必要です。
サーバー側では、ユーザーがこれまでに入力した内容を含むXmlHttpRequestsを処理する必要があります。のURLのような
www.yoursite.com/suggest?typed=www.sta
次に、何らかの方法でエンコードされた提案で応答します。 (提案をJSONエンコードすることをお勧めします。)また、データベースから提案を実際に取得する必要があります。これは、単純なSQL呼び出しまたはフレームワークに応じて何か他のものである可能性があります。
しかし、サーバー側の部分は非常に単純です。クライアント側の部分は複雑です。この記事が役立つ
彼はphpで物事を書いていますが、クライアント側の作業はほとんど同じです。特に、彼のCSSが役立つと思うかもしれません。
Yahooには、優れたオートコンプリートコントロールがあります。
これは明らかにデータを取得するのに役立ちませんが、独自のソースを持ち、実際にGoogleからデータを取得しようとしているようです。
オートコンプリートで独自のデータベースの日付を使用する場合は、自分で検索を実行し、ユーザータイプとしてAJAXを使用して提案を更新する必要があります。検索部分については、 Lucene をご覧ください。
このコントロールは、多くの場合、ワードホイールと呼ばれます。 MSDNには、 LINQ
。遅延実行と遅延評価という2つの重要な側面があります。この記事にはソースコードもあります。