Elasticsearch

Au cœur de la Suite Elastic

Elasticsearch est un moteur de recherche et d'analyse RESTful distribué, capable de résoudre un nombre grandissant de cas d'utilisation. Élément clé de la Suite Elastic, il stocke de manière centralisée vos données et vous permet d'être préparé en toutes circonstances.

Démarrez sur Elasticsearch. Regarder la vidéo

Nouveau Elasticsearch est plus sécurisé, incroyablement rapide et offre des nouvelles fonctionnalités comme une nouvelle structure de données ou un language de script sécurisé par défaut. En savoir plus

RECHERCHE

Faites preuve de curiosité. Interrogez vos données.

Elasticsearch vous permet d’effectuer et de combiner des recherches variées sur des données structurées, non-structurées, de géolocalisation ou indicateurs. Commencez simplement : posez une question et voyez où ça vous mène.

ANALYZE

Prenez du recul pour mieux comprendre.

C’est une chose de trouver les dix meilleurs documents qui répondent à votre recherche. Mais comment donner un sens à des milliards de lignes de log ? Les agrégations d'Elasticsearch vous permettent d'explorer les tendances et d'identifier des modèles à partir de vos données.
VITESSE

Elasticsearch est rapide.
Vraiment très rapide.

Lorsque vous obtenez des réponses instantanément, votre rapport aux données évolue. Vous pouvez alors vous permettre d'effectuer des recherches encore plus poussées.

Cette vitesse n'existe pas par hasard. Nous avons mis en œuvre des index inversés avec des transducteurs à états finis pour les recherches de full-text, des arborescences BKD pour le stockage de données numériques et de géolocalisation, ainsi qu'une structure en colonne pour leur analyse.

Étant donné que tout est indexé, vous pouvez accéder à vos données et les exploiter en un temps record.

SCALABILITÉ

Exécutez-le sur votre ordinateur. Ou sur des centaines de serveurs avec des pétaoctets de données.

Passez de prototype en production en toute fluidité : envoyer des requêtes à un nœud Elasticsearch unique est identique à en envoyer vers un cluster de 300 nœuds.

Elasticsearch scale horizontalement pour traiter un nombre impressionnant d'événements par seconde, tout en gérant la façon dont les index et recherches sont distribués dans le cluster pour des opérations d'une fluidité sans pareille.

LES JOIES DU FONCTIONNEMENT

Célébrez comme il se doit !
(Oubliez la frustration.)

Les choses simples devraient le rester. Nous avons conçu Elasticsearch pour qu’il fonctionne à tout niveau, sans réduire sa puissance ou ses performances.

BIBLIOTHÈQUES DE CLIENTS

Interagissez avec Elasticsearch dans le langage de votre choix

Elasticsearch utilise des API RESTful et JSON standards. Nous créons et maintenons également des clients dans de nombreux langages comme Java, Python, .NET et Groovy. Et, notre communauté en a ajouté encore plus. Ils sont très faciles et naturels d’utilisation et, comme avec Elasticsearch, vous n'êtes aucunement limité dans vos possibilités.

                                    curl -XGET 'http://localhost:9200/social-*/_search' -d '{
  "query": {
    "match": {
      "message": "myProduct"
    }
  },
  "aggregations": {
    "top_10_states": {
      "terms": {
        "field": "state",
        "size": 10
      }
    }
  }
}'
                                
                                    TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
   .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));

SearchResponse sr = client.prepareSearch()
 .setQuery(QueryBuilders.matchQuery("message", "myProduct"))
 .addAggregation(AggregationBuilders.terms("top_10_states")
 .field("state").size(10))
 .execute().actionGet();

client.close();
                                
                                    var client = new ElasticClient();

var searchResponse = client.Search<Tweet>(s => s
    .Index("social-*")
    .Query(q => q
        .Match(m => m
            .Field(f => f.Message)
            .Query("myProduct")
        )
    )
    .Aggregations(a => a
        .Terms("top_10_states", t => t
            .Field(f => f.State)
            .Size(10)
        )
    )
);
                                
                                    from elasticsearch import Elasticsearch

esclient = Elasticsearch(['localhost:9200'])
response = esclient.search(
index='social-*',
body={
    "query": {
        "match": {
            "message": "myProduct"
        }
    },
    "aggs": {
        "top_10_states": {
            "terms": {
                "field": "state",
                "size": 10
            }
        }
    }
}
)
                                
                                    var elasticsearch = require('elasticsearch');
var esclient = new elasticsearch.Client({
  host: 'localhost:9200'
});
esclient.search({
  index: 'social-*',
  body: {
    query: {
      match: { message: 'myProduct' }
    },
    aggs: {
      top_10_states: {
        terms: {
            field: 'state',
            size: 10
        }
      }
    }
  }
}
).then(function (response) {
    var hits = response.hits.hits;
}
);
                                
                                    $esclient = Elasticsearch\ClientBuilder::create()
              ->setHosts(["localhost:9200"])
              ->build();
$params = [
'index' => 'social-*',
'body' => [
    'query' => [
        'match' => [ 'message' => 'myProduct' ]
    ],
    'aggs' => [
        'top_10_states' => [
            'terms' => [
                'field' => 'state',
                'size' => 10,
            ]
        ]
    ]
]
];
$response = $esclient->search($params);
                                
                                    use Search::Elasticsearch;

my $esclient = Search::Elasticsearch->new( nodes => 'localhost:9200' );
my $response = $esclient->search(
index => 'social-*',
body => {
        query => {
            match => { message => 'myProduct' }
        },
        aggs => {
            top_10_states => {
                terms => {
                    field => 'state',
                    size => 10
                }
            }
        }
    }
);
                                
                                    require 'elasticsearch'

esclient = Elasticsearch::Client.new

response = esclient.search index: 'social-*', body: {
  query: {
    match: {
      message: 'myProduct'
    }
  },
  aggregations: {
    top_10_states: {
      terms: {
        field: 'state',
        size: 10
      }
    }
  }
}
                                
PENSÉ POUR LES ENTREPRISES

Sécurisez-le. Surveillez-le.

Vous souhaitez ajouter un identifiant et un mot de passe à votre cluster ? Ajoutez simplement security. Vous souhaitez connaître les performances d'Elasticsearch ? Ajoutez monitoring. Ils sont tous les deux inclus dans X-Pack.

X-Pack s'installe facilement, vous permet de pousser votre cas d'utilisation encore plus loin et vous apporte l'expérience Elasticsearch complète en ajoutant security, monitoring, alerting, reporting et Graph.

HADOOP & SPARK

Elasticsearch pour Hadoop

Vous avez une quantité massive de données dans un cluster Hadoop ? Utilisez les capacités de recherche en temps réel et d’analyse d’Elasticsearch pour vos cas d’utilisation Big Data en utilisant le connecteur Elasticsearch-Hadoop (ES-Hadoop). Vous obtiendrez le meilleur des deux environnements.