Création d'un mapping
Fonctionnement
Le mapping est une composante essentielle d'Elasticsearch pour profiter de l'ensemble des avantages du moteur de recherche.
La définition d'un mapping est intimement liée aux requêtes et à l'analyse de texte. Elle va nous permettre de définir l'ensemble des champs de nos documents JSON, tel que leur type ou leur format. C'est dans le mapping que nous allons aussi définir quelle analyse sera appliqué au champ.
Fondamental : Définir un mapping
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"raw_string": {
"type": "string",
"index": "not_analyzed"
},
"analyzed_string": {
"type": "string",
"index": "analyzed"
},
"raw_date": {
"type": "date",
"index": "not_analyzed",
"format": "YY/mm/dd"
}
}
}
}
}
On retrouve pour chaque attribut 2 champs à remplir :
type = Le type de la donnée
Nécessite un champ supplémentaire pour le format d'une date
index (par défaut : analyzed pour les types string, not_analyzed pour le reste)
analyzed pour les analyser le champ via les analyzers
not_analyzed pour rechercher dans le champ tel quel
no pour ne pas autoriser le champ en recherche
Remarque :
Différents types possibles :
Types standard :
string
integer
boolean
date
Types complexes (object, geo_point, nested)