問題タブ [elasticsearch-rails]

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.

0 投票する
0 に答える
49 参照

ruby-on-rails - 1 つのマルチインデックス クエリを使用して、インデックスごとの制限のある結果を得ることはできますか?

私は、Elasticsearch を使用して 3 種類のドキュメントのインデックス作成と検索を行う Rails アプリケーションに取り組んでいAます。それらは関連していますが、その方法はあまり重要ではありません。3 つの異なるカテゴリでアイテムを検索して返すことができる検索ビューがあります。最初の設定では、すべてのカテゴリの上位 20 件の結果を 1 つのリストにまとめる予定でしたが、現在はうまく機能していません。BC

これで、基本的に、ビューには 3 つの異なるタブがあり、1 つは各インデックスの結果用です。現在の方法論は、各カテゴリから個別に最大 10 の結果を取得したいため、破綻します。23 のA、2 の 、Bおよび 5 のCはありません。これは、スプレッドを得ることを期待して結果の制限を増やしただけで発生します。Go でこれを行っていた場合、これを 3 つの単純な同時要求に分割するだけでよかったのですが、Ruby でこれを試すのはまだ慣れていないため、躊躇しています。私の調査によると、私のオプションのようです。優先順位は次のとおりです。

  • 現在の Elasticsearch クエリで、各インデックスから 10 の制限で最大 30 の結果を返すようにします (私の質問)
  • システム上の3 つのバックグラウンド コールに委任しwget、後でスピンして結果を待ちます
  • マルチスレッド アプローチを使用します (Ruby プロセスの開始に時間がかかりすぎます)。私が使用しているすべての Gem からスレッド セーフ ワームがこの缶から出てくるという見通しは、私を怖がらせます。

1番は完全に完璧です。ドキュメントを調べても、これを達成する方法がわかりません。私が望むものに近いように聞こえるバケットに結果を集約できることは知っていますが、各インデックスからの結果の数を個別に制限することもできますか?

0 投票する
1 に答える
1478 参照

postgresql - 電話番号の Elasticsearch 検索

インデックスを作成して検索に使用したいpostgres配列列があります。以下に例を示します。

電話 = [ "+175 (2) 123-25-32", "123456789", "+12 111-111-11" ]

分析APIを使用してトークンを分析しました.elasticsearchは、次のようにフィールドを複数のフィールドにトークン化しています

私はelasticsearchにトークン化を行わず、特殊文字なしで数字を保存することを望んでいました.検索結果に表示されます。

私のマッピングは以下のとおりです。

これが私がクエリを実行しようとしている方法です

PS特殊文字を削除してみましたが、うまくいきませんでした。

私はそれが達成可能であると確信しており、何かが欠けています。提案してください。

ありがとう。

0 投票する
2 に答える
2596 参照

ruby - Elasticsearch フィルターの最大値ドキュメント

同じ名前のレコードからドキュメントの最大値を取得しようとしています。たとえば、3 人のユーザーがいて、そのうちの 2 人は同じ名前ですが、フォロワー数が異なります。最大の Followers_count に基づいて、同じ名前の 2 人から 1 つのドキュメントのみを返したいと考えました。

したがって、結果は次のようになります。

同名2名のうち、フォロワー数が多い方が勝ち、他の1名も出てきます。

私は次のようにマッピングしています、

ずっと引っかかっていたところですが、

提案があればお願いします

0 投票する
1 に答える
452 参照

ruby-on-rails-4 - elasticsearch-rails 内で同期を維持するにはどうすればよいですか

mysql に既存のデータがあります。

rakeタスクを使用して、mysqlからelasticsearchにすべてのレコードをインポートしました

ただし、Rails内でレコードを削除、更新、挿入するときに同期を維持するにはどうすればよいでしょうか

Railsはelasticsearchへの変更をどのようにトリガーできますか? ありがとう

モデル

レーキタスク

最初の ES インデックス作成用

0 投票する
1 に答える
207 参照

ruby-on-rails - Elasticsearch query_string 複数値フィールド

Ruby on Railsプロジェクトの 1つで ElasticSearchを使用しています。ElasticSearchの場合、query_stringを多用しています

以下は私のプロジェクト設定です:

Ruby-2.2.4、Rails-4.2.0、ElasticSearch-Model-0.1.8

私はすでにデータにインデックスを付けました。Article.import の使用

現在、コンソールで、公開されているすべての記事数を取得しています。次を使用しています。

これはうまくいきます!ここで、 user_idsで記事を検索したいと思います

上記のSQLは魅力的に機能しています!

しかし、query_stringに同じ概念を使用しようとすると、うまくいきません!!

これにより、結果が得られます。

この作業を行うために正確に何をする必要があるかを理解するのを手伝ってください! RANGE、TOなどのいくつかのオプションが見つかりましたが、これは見つかりませんでした:(

ご連絡をお待ちしております。

0 投票する
0 に答える
193 参照

elasticsearch - Elasticsearch Rails で NGRAM が機能しない

job_title フィールドを持つテーブルがあります。

あいまい検索を作成して、ユーザーがクエリ キーワードのスペルを間違えた場合でも結果を取得できるようにしたいと考えています。

たとえば、job_title として「Android 開発者」を含む多くのレコードがあります。

ユーザーが間違った検索Job.es_qsearch("Andoirddd")を発行した場合、次の助けを借りて同様に機能するはずですNGRAM_ANALYZER

ただし、間違ったキーワードから結果を得ることができました。

入力したときにのみ結果を取得できますJob.es_qsearch("Android")

期待どおりの検索結果を得るにはどうすればよいですか。

ありがとう

ジョブ.rb

ファジークエリを使用しましたが、まだ機能していません

ファジー クエリは、このクエリを ES 検索に送信しました

あいまいクエリ 1: 機能しない

あいまいクエリ 1: 機能しない

0 投票する
1 に答える
1215 参照

ruby-on-rails - Elasticsearch Railsのjsonbフィールドの属性にインデックスを追加する

私はelasticsearchの初心者で、jsonbフィールド内のフィールドにインデックスを追加したいと考えています。これはネストされた関係ではありません。

idフィールド(整数)、user_id(整数)、data(jsonb)を持つテーブル ペイロードがあります。

サンプルの jsonb 値は次のようになります。

「データ」(jsonb列)の「値」セクション内の「性別」フィールドのインデックスを追加したい。

データベースはpostgresです。

次のようにインデックス構成を追加しました。

これは正しいですか?

クエリの正確な結果を取得しています。

しかし、このクエリではありません

前もって感謝します !!!

0 投票する
0 に答える
192 参照

elasticsearch - Elasticsearch - まだプライマリを保持しているノードでは動的マッピングを使用できません

公式のelasticsearch gemを使用してelasticsearchに接続するレールアプリケーションがあります。

インデックスに 1 つのフィールド (数値) を追加する (モデルを編集して as_indexed_json に追加する) だけで展開し、特に検索でこのフィールドを使用してクエリを実行しました。

展開の数分後、Elasticsearch クラスター内の 3 つのサーバーの 1 つで負荷が非常に急激に上昇しました。そして、ログでスパムを開始するエラー:

動的マッピングは、まだプライマリを保持しているノードでは使用できません。

検索は非常に遅くなり始め、最終的にクラスターは完全に失敗しました。

クラスターを強制的に再起動し、フィールド/検索を追加したコードを削除する必要がありましたが、問題なく動作するようになりました。

インデックスのマッピングを更新するために PUT を実行しませんでした。最初のモデル インデックスが基本的にこれを実行するのを待っていました。

どんなアイデア/ポインタも大歓迎です。

0 投票する
1 に答える
154 参照

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 の一部の関数をオーバーライドする必要がありますか?