/** * @param \Generated\Shared\Transfer\ElasticsearchIndexDefinitionTransfer $indexDefinition * * @return void */ public function generate(ElasticsearchIndexDefinitionTransfer $indexDefinition) { foreach ($indexDefinition->getMappings() as $mappingName => $mapping) { $mappingName = $this->normalizeToClassName($mappingName); $this->generateIndexMapClass($mappingName, $mapping); } }
/** * @param \Generated\Shared\Transfer\ElasticsearchIndexDefinitionTransfer $indexDefinitionTransfer * * @return void */ protected function createIndex(ElasticsearchIndexDefinitionTransfer $indexDefinitionTransfer) { $index = $this->elasticaClient->getIndex($indexDefinitionTransfer->getIndexName()); if (!$index->exists()) { $this->messenger->info(sprintf('Creating elasticsearch index: "%s"', $indexDefinitionTransfer->getIndexName())); $settings = $indexDefinitionTransfer->getSettings(); $index->create($settings); } foreach ($indexDefinitionTransfer->getMappings() as $mappingName => $mappingData) { $this->sendMapping($index, $mappingName, $mappingData); } }
/** * @param string $indexName * @param array $definitionData * * @return \Generated\Shared\Transfer\ElasticsearchIndexDefinitionTransfer */ protected function createIndexDefinition($indexName, array $definitionData) { $settings = isset($definitionData['settings']) ? $definitionData['settings'] : []; $mappings = isset($definitionData['mappings']) ? $definitionData['mappings'] : []; $indexDefinitionTransfer = new ElasticsearchIndexDefinitionTransfer(); $indexDefinitionTransfer->setIndexName($indexName)->setSettings($settings)->setMappings($mappings); return $indexDefinitionTransfer; }
/** * @param string $name * @param array $settings * @param array $mappings * * @return \Generated\Shared\Transfer\ElasticsearchIndexDefinitionTransfer */ protected function createIndexDefinition($name, array $settings = [], array $mappings = []) { $indexDefinition = new ElasticsearchIndexDefinitionTransfer(); $indexDefinition->setIndexName($name)->setSettings($settings)->setMappings($mappings); return $indexDefinition; }