2

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

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

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

4

1 に答える 1

2

他の誰かが同じことを疑問に思っている場合に備えて、私は自分の質問に答えるつもりです。

インポート時にデータを変換するために何かを渡すことができます。

transform = lambda do |a|
  {index: {_id: a.id, _parent: a.author_id, data: a.__elasticsearch__.as_indexed_json}}
end

Article.import transform: transform

elasticsearch-modelgem のドキュメントはこちら: https://github.com/elastic/elasticsearch-rails/blob/ded20356920802c35d258756113acfd95b25ade6/elasticsearch-model/lib/elasticsearch/model/importing.rb

于 2015-10-29T16:49:59.213 に答える