Elasticsearch - Recherche et analyse de texte

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.

FondamentalDéfinir un mapping

1
PUT my_index
2
{
3
  "mappings": {
4
    "my_type": {
5
      "properties": {
6
        "raw_string": {
7
          "type": "string",
8
          "index": "not_analyzed"
9
        },
10
        "analyzed_string": {
11
          "type": "string",
12
          "index": "analyzed"
13
        },
14
        "raw_date": {
15
          "type": "date",
16
          "index": "not_analyzed",
17
          "format": "YY/mm/dd"
18
        }
19
      }
20
    }
21
  }
22
}

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)

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Oscar Odic, 2016 (Contributions : Stéphane Crozat, les étudiants de l'UTC) Paternité - Partage des Conditions Initiales à l'IdentiqueRéalisé avec Scenari (nouvelle fenêtre)