JDONREFv4 plugin GettingStarted
Cette page est destinée aux utilisateurs confirmés d'ElasticSearch qui souhaitent utiliser JDONREF. Si des éléments vous échappent dans cette page, je vous invite à revoir la page des débutants.
L'utilisation du plugin JDONREFv4 nécessite :
- de disposer d'un cluster elasticsearch !
- d'installer le plugin JDONREFv4 (voir ici)
- de créer le ou les index nécessaires
- de créer les mappings
- puis d'indexer le contenu
Vous êtes ensuite libre d'effectuer les recherches souhaitées ! L'API elasticsearch peut bien sûr être utilisée, mais le plugin jdonrefv4 fourni un moyen de chercher efficacement des adresses (c'est à dire avec les résultats auxquels on devrait s'attendre). Cette page suppose que le cluster elasticsearch et que le plugin jdonref (et éventuelles dépendances) sont installés.
Création de l'index
L'index proposé est du type:
curl -XPUT 'http://localhost:9200/jdonref/' -d @/usr/share/elasticsearch/plugins/jdonrefv4-0.5/jdonrefv4-settings.json
Néanmoins, il est proposé de créer un index par type. Ce découpage est nécessaire car la requête JDONREFv4 se spécialise suivant l'index.
Plus précisément, il faut que l'index contienne l'un des mots-clés suivant :
- poizon
- adresse
- voie
- commune
- departement
- pays
Si vos données sont présentes dans un index dont le nom ne contient pas l'un de ces mots, la requête ne s'applique pas. Il est aussi préférable de ne pas mélanger les types au sein de ces index (avec un nom d'index qui contiendrait le nom des deux types !). Pour des raisons de performance le type n'est pas vérifié dans la requête.
D'une manière générale, l'effet de bord de la fréquence d'un type sur un autre n'est pas positif. Par exemple, les communes sont 36 000, mais au sein des adresses, elles sont représentées 18 000 000 de fois.
Vous pouvez noter plusieurs choses au sujet de cette configuration d'index :
- Par défaut, les nGram est les synonymes ne sont pas utilisés.
- A noter que le metaphone n'est plus utilisé pour le moment, car combiné au ngram, il introduit un trop grand nombre de faux positifs. Vous pouvez toutefois le mettre en place à votre guise.
- Le "french_keywords" peut être rétabli si vous notez quelques mots auxquels l'application du stemmer ne fournis pas de bons résultats.
Un alias
Ces remarques signifient surtout que ce plugin n'est qu'un outil. Vous pouvez l'utiliser à votre guise, modifier le fichier de configuration fourni, et adapter les analyzers à votre propre cas de figure.
A titre d'exemple, vous souhaiterez sans doute effectuer des mises à jour de JDONREF. Si vous effectuez une mise à jour en masse de l'ensemble de vos adresses, vous aurez une interruption de service. Plutôt que d'utiliser un index, elasticsearch vous propose d'utiliser un alias :
curl -XPUT 'http://localhost:9200/jdonref_20141201/' -d @/usr/share/elasticsearch/plugins/jdonrefv4-0.3/jdonrefv4-settings_beginner.json ... indexation ... curl -XPOST 'http://localhost:9200/_aliases/' -d '{ "actions" : [ {"add" : {"index" : "jdonref_20141201", "alias" : "jdonref"}}]}'
Ce qui vous permettra d'utiliser l'alias "jdonref" tout comme un index, et de réindexer sous un autre nom pour effectuer une mise à jour :
curl -XPUT 'http://localhost:9200/jdonref_20141202/' -d @/usr/share/elasticsearch/plugins/jdonrefv4-0.3/jdonrefv4-settings_beginner.json ... réindexation ... curl -XPOST 'http://localhost:9200/_aliases/' -d '{ "actions" : [ {"add" : {"index":"jdonref_20141202", "alias":"jdonref"}}, {"remove" : {"index":"jdonref_20141201", "alias":"jdonref"}}]}'
Si vous avez bien compris, il va vous falloir doubler votre DD, soit environ 20 Go pour la France entière.
Bon. Cela dit j'avais présupposé dans l'introduction que vous étiez familiers de elasticsearch ... Vous ne m'y reprendrez plus. Passons aux choses sérieuses !