public function search($string, $lang = 'cs') { $index = $this->client->getIndex($lang . '_screenplay'); $result = $index->search($string); $results = $result->getResults(); return $results; }
/** * @inheritdoc */ protected function execute(InputInterface $input, OutputInterface $output) { ini_set('memory_limit', '4G'); $lang = $input->getArgument(self::LANGUAGE_ARGUMENT); /** @var Language $language */ if (($language = $this->languagesRepository->findOneBy(['shortCode' => $lang])) === NULL) { $output->writeln("<error>Unknown language {$lang} given!"); return 1; } $index = $this->elastic->getIndex('dwarf'); $type = $index->getType($language->getShortCode() . '_screenplay'); /** @var Season[] $seasons */ $seasons = $this->seasonsRepository->findBy(['language' => $language]); foreach ($seasons as $season) { $output->writeln("Importing season {$season->getNumber()}..."); foreach ($season->getEpisodes() as $episode) { foreach ($episode->getScenarios() as $screenplay) { if ($screenplay->getCharacter() !== NULL) { $document = new Document($screenplay->getId(), ['text' => $screenplay->getText(), 'episode' => ['id' => $episode->getId(), 'number' => $episode->getNumber(), 'name' => $episode->getName(), 'slug' => $episode->getSlug()], 'season' => ['id' => $season->getId(), 'number' => $season->getNumber()], 'character' => ['name' => $screenplay->getCharacter()->getName(), 'slug' => $screenplay->getCharacter()->getSLug()], 'line' => $screenplay->getLine()], $type, $index); $type->addDocument($document); } } } } }
/** * @return Index */ private function getIndex() { return $this->client->getIndex(self::ELASTIC_INDEX); }
/** * @param string $indexName * @return ElasticIndex */ private function getIndex($indexName) { return $this->client->getIndex($indexName); }