Mettre en oeuvre rapidement l’ autocomplétion avec Elasticsearch
Le mécanisme d’auto complétion peut se réaliser assez facilement dans elasticsearch avec les suggestions.
Voici un exemple simple d’auto complétion
Prérequis
Voici un schéma de démo que j’ai crée et des exemples
Création de l’index
put /test
Configuration de l’autocomplétion
Il faut assigner un champ de type completion
dans le mapping
PUT /test/suggestion/_mapping { "suggestion": { "properties": { "name": {"type": "string"}, "name_suggest": { "type": "completion", "payloads": true } } } }
Test
Insertion des données
POST /test/suggestion { "name" : "nom1", "name_suggest" : "nom1" }
POST /test/suggestion { "name" : "nom2", "name_suggest" : "nom2" }
Exemple de recherche
Requête
POST /test/_suggest { "suggestion" : { "text" : "n", "completion" : { "field" : "name_suggest" } } }
Résultat
{ "_shards": { "total": 5, "successful": 5, "failed": 0 }, "suggestion": [ { "text": "n", "offset": 0, "length": 1, "options": [ { "text": "nom1", "score": 1 }, { "text": "nom2", "score": 1 } ] } ] }
J’essaierai dans un prochain article d’intégrer une auto complétion plus intelligente , basée sur les phrases notamment.