예제 #1
0
 /**
  * @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);
     }
 }
예제 #2
0
 /**
  * @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);
     }
 }
예제 #3
0
 /**
  * @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;
 }
예제 #4
0
 /**
  * @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;
 }