create_index!

in elasticsearch-model/spec/support/app/parent_and_child_searchable.rb [21:40]


  def create_index!(options={})
    client = Question.__elasticsearch__.client
    client.indices.delete index: INDEX_NAME rescue nil if options.delete(:force)

    settings = Question.settings.to_hash.merge Answer.settings.to_hash
    mapping_properties = { join_field: { type: JOIN,
                                         relations: { Question::JOIN_TYPE => Answer::JOIN_TYPE } } }
    merged_properties = mapping_properties.merge(
      Question.mappings.to_hash[:properties]
    ).merge(
      Answer.mappings.to_hash[:properties]
    )
    mappings = { properties: merged_properties }

    client.indices.create({ index: INDEX_NAME,
                            body: {
                              settings: settings.to_hash,
                              mappings: mappings } }.merge(options))
  end