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 Elasticsearch 6.3 premieres with rollups for saving space, SQL for search, and more. Read More

RECHERCHE

Soyez curieux. Interrogez vos données.

Qu'il s'agisse de données structurées ou non structurées, de données de géolocalisation 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 journal 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 implémenté 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 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É

L'exécuterez-vous sur votre ordinateur portable ou sur des centaines de serveurs gérant des pétaoctets de données ? Elasticsearch est à l'aise partout.

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.Ce n'est pas pour nous vanter, mais la fluidité des opérations nous laisse nous-mêmes bouche bée.

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.

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.

Chiffre, texte, géo, structuré, non-structuré – tous les types de données sont les bienvenus !All data types are welcome. On adore tous les types de données.

Application search, security analytics, et logging ne font qu’effleurer la façon dont les entreprises 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

Elasticsearch : 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. Ils sont très faciles d’utilisation et, comme avec Elasticsearch, vous n'êtes aucunement limité dans vos 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
                                
Des fonctionnalités puissantes

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 : Security, Monitoring, Alerting, Reporting, Graph, Machine Learning et plus encore.

HADOOP & SPARK

Elasticsearch pour Hadoop

Votre cluster Hadoop contient des volumes colossaux de données ? Voilà qui tombe bien. 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.