Chewy & ElasticSearch - Отношения между родителями и детьми

Я использую жевательный драгоценный камень для эластичного поиска.

У меня есть два отдельных индекса: Items1Index а также Items2Index, Я должен найти Items2 по полю от Items2Indexи отфильтровать найденные элементы по нескольким полям из Items1Index, (Item1 имеет много Items2)

Я не хочу повторять все поля из Items1Index в Items2Index,

Я пытаюсь реализовать отношения между родителями и детьми.

Мой код:

# app/chewy/items1_index.rb
class Items1Index < Chewy::Index
  define_type Item1.active, name: 'item1' do
    field :id, type: 'integer', index: :not_analyzed
    field :name, value: -> { name.strip }
  end
end


# app/chewy/items2_index.rb
class Items2Index < Chewy::Index
  define_type Item2 do
    default_import_options batch_size: 500, bulk_size: 50.megabytes, refresh: false

    root parent: 'item1', parent_id: -> { item1_id } do
      field :id, type: 'integer' # not sure, for what this block.
    end
  end
end

Когда я делаю rake chewy:reset[items2]Я вижу ошибку:

rake aborted!
NoMethodError: undefined method `[]' for nil:NilClass
/Users/User/.rvm/gems/ruby-2.3.1@project/gems/chewy-0.8.4/lib/chewy/type/import.rb:214:in `block in fetch_indexed_objects'
/Users/User/.rvm/gems/ruby-2.3.1@project/gems/chewy-0.8.4/lib/chewy/type/import.rb:213:in `map'
/Users/User/.rvm/gems/ruby-2.3.1@project/gems/chewy-0.8.4/lib/chewy/type/import.rb:213:in `fetch_indexed_objects'
/Users/User/.rvm/gems/ruby-2.3.1@project/gems/chewy-0.8.4/lib/chewy/type/import.rb:34:in `block (2 levels) in import'
/Users/User/.rvm/gems/ruby-2.3.1@project/gems/chewy-0.8.4/lib/chewy/type/adapter/active_record.rb:32:in `import_scope'

Что случилось и как я могу решить проблему?

Благодарю.

жевательные (0.8.4)

asticsearch 2.4.0

0 ответов

Другие вопросы по тегам