2

我在我的 Rails 应用程序中使用 gems 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 回答