問題タブ [elasticsearch-model]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rails - Heroku を使用した Elasticsearch (Bonsai) - パフォーマンスの問題
Ruby on Railsプロジェクトの 1 つでElasticsearch - Bonsaiを使用しています。そのため、これまでのところは非常にスムーズに進んでいました。しかし、このアプリケーションをエンドユーザーに公開し、人々が入り始めた瞬間、単一のelasticsearchクエリが応答するのに5〜7秒かかることに気付きました(私たちにとっては本当に悪い経験です)-しかし、8〜2倍のWebがありますダイノが配置されています。
そこで、BonsaiアドオンをBonsai 10にアップグレードし、 NewRelicアドオンも追加することにしました (単一のクエリが応答するのにかかる時間を監視するため)。
以下は私たちの環境設定です:
そのため、データを Elasticsearch に再度インポートしました。ElasticSearchクラスターの状態は次のとおりです。
以下は、 ESコールのNewRelicのデータです
これは、心配する大きな理由を示しています。
以下の私のモデルarticle.rb:
さて、 Herokuの BONSAI 10 プランを見ると、20 個のシャードが得られますが、現在のクラスターの状態では、1 つのアクティブなプライマリ シャードと 2 つのアクティブなシャードしか使用していません。いくつかの質問が突然頭に浮かびました。
- シャードの数を 20 に増やすと、ここで役に立ちますか?
- ES クエリをキャッシュすることも可能です -- 同じことをお勧めしますか? ――メリット・デメリットはありますか?
時間を短縮し、ES の作業をより効率的にする方法を見つけるのを手伝ってください。
アップデート
ここに小さなコード スニペットhttps://jsfiddle.net/puneetpandey/wpbohqrh/2/があります。ElasticSearchへの呼び出しが非常に多く必要な理由を正確に示すために (参照として) 作成しました。
上記の例では、(各チェックボックス要素の前に) いくつかのカウントを表示しています。これらのカウントを表示するには、ES を押して取得した数値を取得する必要があります
わかりましたので、コメントを読んだ後、ここで良い記事を見つけました:検索で最高のパフォーマンスを得るために1つのサーバーでelasticsearchクラスターを構成する方法私は再構築するのに十分だと思います
一番、
プニート
ruby-on-rails - Elasticsearch Railsのjsonbフィールドの属性にインデックスを追加する
私はelasticsearchの初心者で、jsonbフィールド内のフィールドにインデックスを追加したいと考えています。これはネストされた関係ではありません。
id
フィールド(整数)、user_id
(整数)、data
(jsonb)を持つテーブル ペイロードがあります。
サンプルの jsonb 値は次のようになります。
「データ」(jsonb列)の「値」セクション内の「性別」フィールドのインデックスを追加したい。
データベースはpostgresです。
次のようにインデックス構成を追加しました。
これは正しいですか?
クエリの正確な結果を取得しています。
しかし、このクエリではありません
前もって感謝します !!!
mysql - mysql ビュー レールのエラスティックサーチ
MYSQL でビューの Elasticsearch インデックスを作成する方法は?
mysql ビューの移行用のモデルを作成してみましたが、モデルに入れました
入れてelasticsearch.rb
しかし、行HistoryView.import
はエラーを与えるようです
ActiveRecord::StatementInvalid: Mysql2::Error: 列 'history_views' が不明です。'order 句': SELECT history_views.* FROM history_views ORDER BY history_views. ASC リミット 1000
ジェムにはそれで注文する主キーが必要だと思いますが、それはビューにはありません。
どうすればこれを解決できますか? gem の一部の関数をオーバーライドする必要がありますか?
ruby-on-rails - エラスティック検索クエリは 1=0 を検索し、結果を返しません
私は最近、elasticsearch-rails と elasticsearch-model gems を使用して Ruby on Rails アプリケーションに ES を追加しました。モデルに適切なインデックスとマッピングを追加し、インポートしました。しかし、私の検索では常に 0 レコードが返されます。クエリは常に 1=0 を検索します。
一方:
ここで 1 つのレコードが返されることを期待していますが、一致するレコードはありません。
誰でもこれで私を助けることができますか?ここで何か不足していますか?
Report.import はインポートされた 4 つのレコードを示していますが、インデックス ページのドキュメント数に変更はありません。
ruby-on-rails - Elasticsearch-rails で ingest-attachment プラグインをどのように使用しますか?
私は以前、現在非推奨となっている mapper-attachments プラグインを使用していましたが、これは通常のインデックス作成と一緒に使用するのがかなり簡単でした。ingest-attachment がそれに取って代わり、パイプラインなどが必要になったため、これを適切に使用する方法がわかりにくくなっています。
という名前のモデルがMedia
ありfile
、base64 でエンコードされたファイルを含むフィールドがあるとします。そのファイルには次のマッピングがあります。
curl を介して添付パイプラインを作成しました。
現在、プラグインを介してMedia.last.__elasticsearch__.index_document
実際のレコードと一緒にレコードをインデックス化するには、以前はシンプルで十分でした。file
mapper-attachments
ingest-attachment
パイプラインとelasticsearch-rails
宝石を使用してこれを行う方法がわかりません。
curl を介して次の PUT を実行できます。
これにより、エンコードされたファイルがインデックス化されますが、明らかに、モデルの残りのデータはインデックス化されません (または、以前にインデックス化されていた場合は完全に上書きされます)。curl コマンドでファイルとともにすべてのモデル属性を含める必要はありません。これを行うためのより良い方法またはより簡単な方法はありますか? パイプラインなしで完全にオフになっていて、取り込みが機能するはずですか?
elasticsearch - Elasticsearch フィルターが機能しない
Elasticsearch 2 を Rails 4 で使用する、elasticsearch-model gem を使用する
すべて問題なく、ジオポイントの距離も機能しています。ただし、単純なブール値フィルターを機能させる方法を一生解決することはできません。単純なブール値「exclude_from_search_results」があり、(true の場合) レコードが結果から除外されます。
Railsコントローラーでの私のクエリは次のとおりです(フィルターなし):
これをboolまたはqueryセクション内、またはその外の両方に追加しましたが、ドキュメントを取得しないか、すべてのドキュメントを取得します。(9000 が一致する必要があります)
例:
また、フィルター句をさまざまな場所に配置しようとしましたが、エラーが発生するか、結果が得られません。私は何を間違っていますか?? おそらく単純なものが欠けています...
これが私のマッピングです:
どんなポインタでも大歓迎です...