2017-09-14 10 views
0

こんにちは私はPostgreSQLサーバとしてバックエンドデータベースを使ってDjangoプロジェクトを進めています。私はelastic searchを私のプロジェクトの検索エンジンとして選択しました。dbコンテンツを弾性検索にインデックス付けする

私はelastic search-dsl-pyを使用して、Djangoモデルとelastic searchドキュメントタイプの間のマッピングを作成しました。 Django signalsを使用して、updatedeleteイベントをキャプチャします。

ところで、私はDjangoモデルのすべてのフィールドを弾性検索にマッピングしていません。

弾性検索サーバーからホームページへのアイテムのリストを取得するユーザー検索を行うと、ユーザーがアイテムリストをクリックしたとき。 elastic_search serverまたはPostgres server

すべてのオブジェクトのすべての詳細を弾性サーバーに置くと、それは私にとっては苦痛になるでしょう。 Djangoモデルでネストされた関係。

私が弾性検索サーバーにすべての詳細を載せていない場合、弾性検索クエリに比べて遅くなるアイテムの詳細を取得するために、データベースにクエリする必要があります。

私はどちらのアプローチをとるべきですか?

すべてのプロパティを弾性検索サーバーのネストされたリレーションと共に索引付けし、すべての検索操作を弾性検索に実行します。弾性検索サーバーで、詳細ビューのためにのみ必要なフィールド

OR

インデックス、必要なフィールドIDでデータベースにq個のクエリを実行します。

誰もこの種の経験がありますか?

答えて

1

この決定は実際にあなたが弾性検索で対処しようとしているものによって決まります。 最近、私は弾性検索を使ったプロジェクトに取り組んでいました。その理由は、検索のスピードアップとより良い検索結果の提供でした。ただし、選択した製品の詳細がデータベース(mssql)から照会されます。 すべてまたはいくつかのフィールドをマッピングするかどうかは、弾力的な検索から欲しかったものによって決まります。検索結果(検索結果と速度)が良い場合は、検索に役立つフィールドのみをマッピングすることをおすすめします。

関連する問題