PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Littlewing : Mettre en oeuvre rapidement l’ autocomplétion avec Elasticsearch

mercredi 4 février 2015 à 08:46

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.

Gravatar de Littlewing
Original post of Littlewing.Votez pour ce billet sur Planet Libre.