問題タブ [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 - Elasticsearch - Active Record モデルからのレコードの自動インポート
システム:
- レール4
- ルビー2
- エラスティックサーチ 1.6.0
Elasticsearch を使用してレコードをフィルタリングし、Active Record モデルの統計を計算しています。Elasticsearch インデックスに Postgres データベースを反映させて、既存のレコードがインデックスにインポートされたり、新しいレコードが作成されるとインデックスが作成されるようにしたいと考えています。
私のモデルの2つが次のように含まれていることに懸念があります。
しかし、Rails コンソールを開いて を呼び出すとBar.statistics
、nil
すべてのフィールドが表示されます。次に を実行するBar.import force: true
とBar.statistics
、拡張統計集計で nil 以外の正しい値が得られます。
その他の注意点: Pry を使用して Rails コンソールで foo.rb を開いて終了すると、Cannot define multiple included blocks for a Concern
エラーが発生しました (ただし、アプリケーションのロードは正常に機能します)。
自分のレコードを ES に自動インポートするための何かが不足していますか?
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}
ruby-on-rails - ElasticSearch が検索にすべてのフィールド (文字列の配列) を使用していない
RailsでESを使い始めたばかりで、理解できないことに遭遇しました:
私はArtistモデルを持っています(例のために単純化されています):
私の問題は、ES 検索が get_aliases プロパティを使用して結果を提供していないことです。「名前」属性のみが検索されます。
私は開発者を持っています。いくつかのアーティストが含まれるデータベースには、文字列「Phil」が含まれていませんが、別名に「Phillip」が含まれています。試してみると、Artist.__elasticsearch__.search('phil').count
0の結果が得られます。
私は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です
ruby-on-rails - Elasticsearch で親子オブジェクトをインポートする方法
Railsアプリでgemのelasticsearch-railsとelasticsearch-modelを使用しています。この統合テストを、既存のデータをインポートする前にマッピングなどを設定するためのテンプレートとして使用しています。これは、親モデルと子モデルの間で同じ基本的な関連付けを持っています。
コールバックのために統合テストが機能し、それらのコールバックに親 ID が設定されることを知っています。
既存の質問と回答をインポートしたいと考えています。Questions.import
andを呼び出すだけでは不十分なようですAnswers.import
。質問はありますが、Elasticsearch ストアで回答が得られません。適切な親マッピングを使用して Answers オブジェクトをインポートする方法を知りたいです。誰でもヒントを教えてもらえますか?
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
何か案は?
ruby-on-rails - Railsのelasticsearchから存在しないドキュメントを削除するにはどうすればよいですか?
モデル クラスでは、ElasticSearch でインデックス付きドキュメントを削除する次のコードがあります (ドキュメントに従って)。
rescue nil
ドキュメントが見つからないときにElasticSearchが発生させる404例外をキャッチするために使用しています。
問題は、例外がまだ発生していて、rescue nil
コードがそれをキャッチしていないことです。
ドキュメントが存在するかどうかに関係なく、ElasticSearch でドキュメントを削除するにはどうすればよいですか?