Ejemplo n.º 1
0
 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);
                 }
             }
         }
     }
 }
Ejemplo n.º 3
0
 /**
  * @return Index
  */
 private function getIndex()
 {
     return $this->client->getIndex(self::ELASTIC_INDEX);
 }
Ejemplo n.º 4
0
 /**
  * @param string $indexName
  * @return ElasticIndex
  */
 private function getIndex($indexName)
 {
     return $this->client->getIndex($indexName);
 }