Elasticsearch

Au cœur de la Suite Elastic

Elasticsearch est un moteur de recherche et d'analyse RESTful distribué, conçu pour répondre à une multitude de cas d'utilisation. Et leur liste ne cesse de s'enrichir. Véritable clé de voûte de la Suite Elastic, il centralise le stockage de vos données et vous permet d'élargir le champ des possibles. Vos données n'ont plus aucun secret pour vous.

Se lancer avec Elasticsearch. Regarder la vidéo

Nouveau Nouveauté de la version 6.5 : sauvegardes de _source et réplication inter-clusters (version bêta). Prise en charge de Java 11 et récupérateur de mémoire G1GC. En savoir plus

RECHERCHE

Soyez curieux. Interrogez vos données.

Qu'il s'agisse de données structurées ou non structurées, de données géographiques ou d'indicateurs, avec Elasticsearch, vous pouvez lancer différents types de recherches, ou encore les associer entre elles. En un mot : vous êtes libre de travailler comme vous l'entendez. Commencez par poser une question et voyez où elle vous mène.

ANALYSE

Prenez du recul : saisissez tout en un coup d'œil.

Trouver les dix documents qui répondent le mieux à votre recherche est une chose. Donner un sens à des milliards de lignes de log en est une autre. Les agrégations d'Elasticsearch vous permettent d'explorer les tendances et d'identifier des modèles à partir de vos données.

RAPIDITÉ

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 rapidité n'est pas le fruit du hasard. Nous avons mis en œuvre des index inversés avec des transducteurs à états finis pour les recherches full text, des arborescences BKD pour le stockage de données numériques et géographiques, 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. Exploitez et accédez à toutes vos données à des vitesses records.

SCALABILITÉ

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

Passer du prototype à la production ? Aucun souci : que vous envoyiez des requêtes vers un seul nœud Elasticsearch ou vers un cluster de 300 nœuds, cela ne fait aucune différence.

Elasticsearch peut scaler horizontalement pour traiter un nombre impressionnant d'événements par seconde, tout en gérant la distribution des index et des requêtes dans le cluster pour des opérations d'une fluidité sans pareille.

RÉSILIENCE

Nous protégeons vos arrières : à vous les sommets.

Votre hardware se rebelle ? Les partitions réseaux viennent hanter vos nuits ? Elasticsearch détecte les défaillances. Notre mission : assurer la sécurité et la disponibilité de votre cluster. Et donc de vos données. Avec la réplication inter-clusters, un cluster secondaire peut passer à l'action et agir comme une sauvegarde à chaud.

Ce n'est pas un hasard si, dès l'origine, nous avons opté pour un environnement distribué conçu pour rimer avec tranquillité d’esprit.

FLEXIBILITÉ

Vous êtes du genre multitâche ? Venez comme vous êtes.

Données numériques, textuelles, géographiques, structurées, non structurées… On adore tous les types de données.

Nos solutions App Search, Security Analytics, Metrics et Logging ne font qu'effleurer la façon dont les entreprises du monde entier s'appuient sur Elasticsearch pour résoudre leurs défis quotidiens.

SIMPLICITÉ OPÉRATIONNELLE

Puisqu'on vous dit que c'est magique

Pourquoi faire compliqué quand on peut faire simple ? Nous avons conçu Elasticsearch pour qu'il s'adapte à tous les cas de figure, quelle que soit la taille de votre cluster. Le tout, sans perte de puissance, ni de performances.

BIBLIOTHÈQUES DE CLIENTS

Une tour de Babel de langages

Elasticsearch utilise des API RESTful et JSON standards. Nous créons et maintenons également des clients dans de nombreux langages tels que Java, Python, .NET, SQL et PHP. Et, notre communauté en a ajouté encore plus. À l'image d'Elasticsearch, ils sont simples à utiliser, leur utilisation est naturelle, et ils vous offrent une foule de possibilités.

                                    curl -H "Content-Type: application/json" -XGET
'http://localhost:9200/social-*/_search' -d '{
  "query": {
    "match": {
      "message": "myProduct"
    }
  },
  "aggregations": {
    "top_10_states": {
      "terms": {
        "field": "state",
        "size": 10
      }
    }
  }
}'
                                
                                    RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(
                    new HttpHost("localhost", 9200, "http")));

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchAllQuery());            
searchSourceBuilder.aggregation(AggregationBuilders.terms("top_10_states").field("state").size(10));

SearchRequest searchRequest = new SearchRequest();
searchRequest.indices("social-*");
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest);
                                
                                    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
      }
    }
  }
}
                                
                                    SELECT SCORE(), * FROM social-* 
   WHERE match(message, 'myProduct') 
   ORDER BY SCORE() DESC

SELECT state, COUNT(*) AS state_count FROM social-* 
   WHERE match(message, 'myProduct') 
   GROUP BY state LIMIT 10
                                
De puissantes fonctionnalités

Augmenter les capacités d'Elasticsearch

Ajouter un identifiant et un mot de passe à votre cluster ? Contrôler les performances d'Elasticsearch ? Exécuter des tâches de machine learning pour détecter les anomalies ? Tout cela est possible grâces aux fonctionnalités intégrées à la Suite Elastic.

Obtenez une expérience augmentée avec les fonctionnalités de Security, Monitoring, Alerting, Reporting, GraphMachine Learning et plus encore.

HADOOP & SPARK

Elasticsearch plus Hadoop

Votre cluster Hadoop contient des volumes colossaux de données ? Grâce au connecteur Elasticsearch-Hadoop (ES-Hadoop), vous pouvez mettre les fonctionnalités d'analyse et de recherche en temps réel d'Elasticsearch au service de votre big data. À vous le meilleur des deux mondes.