問題タブ [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.

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

ruby-on-rails - Elasticsearch - Active Record モデルからのレコードの自動インポート

システム:

  • レール4
  • ルビー2
  • エラスティックサーチ 1.6.0

Elasticsearch を使用してレコードをフィルタリングし、Active Record モデルの統計を計算しています。Elasticsearch インデックスに Postgres データベースを反映させて、既存のレコードがインデックスにインポートされたり、新しいレコードが作成されるとインデックスが作成されるようにしたいと考えています。

私のモデルの2つが次のように含まれていることに懸念があります。

しかし、Rails コンソールを開いて を呼び出すとBar.statisticsnilすべてのフィールドが表示されます。次に を実行するBar.import force: trueBar.statistics、拡張統計集計で nil 以外の正しい値が得られます。

その他の注意点: Pry を使用して Rails コンソールで foo.rb を開いて終了すると、Cannot define multiple included blocks for a Concernエラーが発生しました (ただし、アプリケーションのロードは正常に機能します)。

自分のレコードを ES に自動インポートするための何かが不足していますか?

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

ruby-on-rails - 列フィールドのインデックス作成が ElasticSearch で機能しない

モデルにElasticSearch統合を実装しています:

私のRailsコンソールでは、次のことを行いました。

マイクエリ

1) 索引付けされていない名前と ID 以外のフィールド値で検索を行うと、検索結果が得られます。例:

result = MissionDef.search 'app' --- 動作します result.records.count => 1

これは私が推測するケースではありません。

2) Missiondef.first.as_indexed_json => が正しく機能しないため、JSON としてオブジェクト全体として o/p が返されます

{"id"=>226, "ade_channel_key"=>"d403d658313e6c35ce", "name"=>"テスト ミッション", "icon"=>"/app/assets/images/badges/Showedup.png", "定義" =>"{}", "created_at"=>2015 年 8 月 4 日 11:30:08 UTC +00:00、"updated_at"=>2015 年 8 月 4 日 11:30:08 UTC +00:00、" container_id"=>883, "public"=>true}

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

ruby-on-rails - ElasticSearch が検索にすべてのフィールド (文字列の配列) を使用していない

RailsでESを使い始めたばかりで、理解できないことに遭遇しました:

私はArtistモデルを持っています(例のために単純化されています):

私の問題は、ES 検索が get_aliases プロパティを使用して結果を提供していないことです。「名前」属性のみが検索されます。

私は開発者を持っています。いくつかのアーティストが含まれるデータベースには、文字列「Phil」が含まれていませんが、別名に「Phillip」が含まれています。試してみると、Artist.__elasticsearch__.search('phil').count0の結果が得られます。

私はArtist.all.__elasticsearch__.import取得しようとしました:

そしてArtist.__elasticsearch__.refresh_index! 取得:

(2つのコマンドの違いはわかりません...)、しかし運はありません:/

私の問題は、文字列の配列をプロパティとして使用しているという事実から来ていますか? 別の方法でインデックスを作成する必要がありますか?

どんなアイデア/ヘルプも大歓迎です!

編集: gem '
elasticsearch
-rails', '~> 0.1.7'
gem 'elasticsearch-model', '~> 0.1.7' を使用しています

インストールされているElasticSearchサーバーは1.7.1です

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

ruby-on-rails - Elasticsearch で親子オブジェクトをインポートする方法

Railsアプリでgemのelasticsearch-railsとelasticsearch-modelを使用しています。この統合テストを、既存のデータをインポートする前にマッピングなどを設定するためのテンプレートとして使用しています。これは、親モデルと子モデルの間で同じ基本的な関連付けを持っています。

コールバックのために統合テストが機能し、それらのコールバックに親 ID が設定されることを知っています。

既存の質問と回答をインポートしたいと考えています。Questions.importandを呼び出すだけでは不十分なようですAnswers.import。質問はありますが、Elasticsearch ストアで回答が得られません。適切な親マッピングを使用して Answers オブジェクトをインポートする方法を知りたいです。誰でもヒントを教えてもらえますか?

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

ruby-on-rails - Elasticsearch-Model の `mapping do` 内でクラス メソッドを使用する

を使用してかなり複雑なマッピングを生成していElasticsearch-Modelます。検索関連のすべてのメソッドを に抽出しましたActiveSupport::Concern。次のコードは Tire gem を使用して記述したものですが、Tire は Elasticsearch 1.x をサポートしていないため、gem を Elasticsearch-Rails および Elasticsearch-Model にアップグレードしています。現在の実装は次のようになります。

しかし、私はこのエラーが発生しています:

usinddef included(base)や then など、多くのことを試しましたが、適切な範囲base.evalに入ることができません。class_eval

何か案は?

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

ruby-on-rails - Railsのelasticsearchから存在しないドキュメントを削除するにはどうすればよいですか?

モデル クラスでは、ElasticSearch でインデックス付きドキュメントを削除する次のコードがあります (ドキュメントに従って)

rescue nilドキュメントが見つからないときにElasticSearchが発生させる404例外をキャッチするために使用しています。

問題は、例外がまだ発生していて、rescue nilコードがそれをキャッチしていないことです。

ドキュメントが存在するかどうかに関係なく、ElasticSearch でドキュメントを削除するにはどうすればよいですか?