Web サイトでの検索を高速化するために、ホストされている Elastic Search プロバイダーへの接続を管理する方法が必要です。Found ElasticSearch アドオンと、ElasticSearch Python ライブラリである pyes を使用して、Heroku で Django を実行しています。
pyes を使用して ElasticSearch への接続を設定する標準的な方法は、次のようにプロバイダー URL を ES オブジェクトに渡すことです。
(1)connection = ES(my_elasticsearch_url)
Pyes はバックグラウンドで ES オブジェクトを使用して、ElasticSearch プロバイダーへのオープンな HTTP 接続を確立するため、次のような検索を実行できます。
(2)results = connection.search(some_query, index_name)
以前は、検索用の Django ビューでこれらの両方の手順を実行していました。ユーザーが検索を行うたびに、新しい HTTP 接続を開いて検索を実行していました。その結果、検索呼び出しが遅くなりました。
(1) をアプリの__init__.py
ファイルに移動することで検索を高速化しました。今では、接続を 1 回だけ設定し、それを検索ビューにインポートしています。しかし、多くの人が一度に検索しようとすると、その HTTP 接続が詰まらないのではないかと心配しています。
接続のプールを設定し、アプリの起動時に一度開始し、必要に応じて検索ビューに表示する方法についてのアイデアを探しています。理想的には、コードの変更を最小限に抑えて、プールのサイズを簡単に拡大縮小できるようにしたいと考えています。
これにアプローチする方法はいくつか考えられますが、コンピューティングに関連する一般的な問題のように思われるため、そのようなシステムの優れた設計とベスト プラクティスについて多くのアイデアを持っていると確信しています。私はそれらを聞きたいです。
どうもありがとう!
粘土