ElasticSearch::get PHP Méthode

get() public static méthode

public static get ( )
    public static function get()
    {
        //Entity loader
        $entities = Config::getEntityNamespacePath();
        //Annotation metadata driver
        $config = new Configuration();
        $md = $config->newDefaultAnnotationDriver(array($entities['path']));
        $config->setMetadataDriverImpl($md);
        $config->setMetadataCacheImpl(new ArrayCache());
        //Set and configure preferred serializer for persistence
        $serializer = SerializerBuilder::create()->addMetadataDir(__DIR__ . '/yaml')->setPropertyNamingStrategy(new SerializedNameAnnotationStrategy(new IdenticalPropertyNamingStrategy()))->addDefaultHandlers()->build();
        //If using serialization groups you can sepcify the names here
        $config->setEntitySerializer(new JMSSerializer(SerializationContext::create()->setGroups(array('Default')), $serializer));
        //Add event listeners here
        $eventManager = new EventManager();
        //$eventManager->addEventListener('prePersist', $listener);
        //Create the client
        $client = new Client(array('connections' => Config::getServers()));
        //Get the search manager
        return new SearchManager($config, new ElasticaAdapter($client), $eventManager);
    }

Usage Example

Exemple #1
0
<?php

use Doctrine\Tests\Models\Comments\User;
use Doctrine\Tests\Models\Comments\Email;
use Doctrine\Tests\Models\Comments\Comment;
require_once __DIR__ . '/vendor/autoload.php';
require_once __DIR__ . '/ElasticSearch.php';
$sm = ElasticSearch::get();
$client = $sm->getClient();
$metadatas = $sm->getMetadataFactory()->getAllMetadata();
// Delete indexes
foreach ($metadatas as $metadata) {
    if ($client->getIndex($metadata->index)->exists()) {
        $client->deleteIndex($metadata->index);
    }
}
// Recreate indexes and types
foreach ($metadatas as $metadata) {
    if (!$client->getIndex($metadata->index)->exists()) {
        $client->createIndex($metadata->index);
    }
    $client->createType($metadata);
}
//Install fixtures here... can use Doctrine/data-fixtures package with
//special SearchManager adapter if required.
$user1 = new User();
$user1->setName('Hash');
$user1->setUsername('mrhash');
$user1->addEmail(new Email('*****@*****.**'));
$user2 = new User();
$user2->setName('Timothy Leary');
ElasticSearch