Bases & syntaxe
Requête simple
GET /my_index/_search?q=field:value
Pour effectuer une recherche simple dans un index Elasticsearch.
Request body search
POST /my_index/_search
{
"query": {
"match": {
"field": "value"
}
}
}
Utilise le corps de la requête pour des recherches plus complexes et précisées.
Structures de données
Document
PUT /my_index/_doc/1
{
"name": "John Doe",
"age": 30,
"tags": ["developer", "elasticsearch"]
}
Structure de base des documents en Elasticsearch.
Fonctions & methodes essentielles
Query DSL (Domain Specific Language)
POST /my_index/_search
{
"query": {
"bool": {
"must": [
{ "match": { "field1": "value1" } },
{ "match": { "field2": "value2" } }
]
}
}
}
Utilise le Query DSL pour construire des requêtes complexes.
Aggregations
GET /my_index/_search
{
"size": 0,
"aggs": {
"avg_age": {
"avg": { "field": "age" }
}
}
}
Effectue des agrégations pour analyser les données.
Patterns courants
Recherche par range (intervalles)
GET /my_index/_search?q=price:[10 TO 50]
Pour rechercher des documents dans un intervalle spécifique.
Operations avancées
Mappings (schémas)
PUT /my_index
{
"mappings": {
"properties": {
"field1": { "type": "text" },
"field2": { "type": "keyword" }
}
}
}
Définit le schéma des documents dans un index.
Import et export de données
## Export
POST /my_index/_search?scroll=1m&size=1000
{
"_source": ["field1", "field2"]
}
## Traitement du scroll
## Import
PUT /my_index/_doc/1
{
...
}
Pour importer et exporter des données dans Elasticsearch.
Debugging & outils
Utilisation de Dev Tools (Chrome)
GET /_cat/indices?v
Affiche les statistiques sur tous les index.
Profiling et monitoring
PUT /my_index/_settings
{
"index": {
"refresh_interval": "-1"
}
}
Optimise le refresh interval pour l'optimisation des performances en production.
Ces éléments couvrent une variété d'aspects de l'utilisation d'Elasticsearch, desde les bases jusqu'à des opérations plus avancées et des outils de débogage.