sql >> データベース >  >> RDS >> Mysql

ElasticSearchでユーザーの検索クエリを保存する最良の方法は?

    これを行うには、ESクラスターに2番目のインデックスを作成します。ユーザーがアプリケーションを介して検索を送信すると、2つのステップが実行されます。

    1. 通常の検索動作については、Elasticsearchにクエリとして検索を送信します。
    2. ユーザーが指定した検索用語を使用して、インデックスリクエストをクラスタに送信します。

    提出されたすべての検索用語の2番目のインデックスを使用すると、多くの優れた処理を実行できます。あなたの場合、SQLのように、より多くの人がその用語を検索するにつれて増分する「カウント」フィールドを持つことができます。もう1つの優れたユースケースは、Googleスタイルの推奨用語です。 UIは、キーを押すたびに入力されたテキストを使用して検索リクエストを送信し、以前に検索された用語からのヒットをドロップダウンに入力できます。ユーザーフィールドを追加し、その特定のユーザー以外の結果を除外することで、これをパーソナライズすることもできます。

    覚えておくべきことは、ElasticSearchはプライマリデータストアとセカンダリデータストアの両方として使用できるということです。ただし、一次データとしては、失っても構わないと思っているデータ(検索履歴など)のみを保持することを常にお勧めします。システムの重要なデータをSQLなどの従来のデータストアに保存しておくと、問題が発生した場合でも簡単にバックアップと復元ができます。




    1. UbuntuにSQLiteとSQLiteブラウザをインストールする方法

    2. 同じSQLステートメントで複数のテーブルから削除することは可能ですか?

    3. Oracle-完全更新中もマテリアライズド・ビューにアクセスできます。これはどのように作動しますか?

    4. 別のデータベースからのselectクエリでmysqlテーブルを更新します