Exclusion des champs Elasticsearch de l'indexation

Explication de la configuration d'Elasticsearch pour exclure des champs, des raisons de le faire et des meilleures pratiques à suivre.

Elasticsearch vous permet d’indexer des données rapidement et en toute flexibilité. Essayez-le gratuitement dans le cloud ou exécutez-le en local pour découvrir à quel point l’indexation peut être simple.

Dans Elasticsearch, l'indexation fait référence au processus de stockage et d'organisation des données de manière à les rendre facilement consultables. Si l'indexation de tous les champs d'un document peut s'avérer utile dans certains cas, il peut arriver que vous souhaitiez exclure certains champs de l'indexation. Cela permet d'améliorer les performances, de réduire les coûts de stockage et de minimiser la taille globale de votre index Elasticsearch.

Dans cet article, nous examinerons les raisons d'exclure des champs de l'indexation, comment configurer Elasticsearch pour exclure des champs spécifiques et quelques bonnes pratiques à suivre pour ce faire.

Raisons d'exclure des champs de l'indexation

  1. Performance : L'indexation de tous les champs d'un document peut augmenter le temps d'indexation et ralentir les performances de recherche. En excluant les champs qui ne sont pas nécessaires à la recherche ou à l'agrégation, vous pouvez améliorer les performances globales de votre cluster Elasticsearch.
  2. Stockage : L'indexation des champs consomme de l'espace de stockage. L'exclusion des champs qui ne sont pas nécessaires à la recherche ou à l'agrégation peut contribuer à réduire les besoins en stockage de votre cluster Elasticsearch.
  3. Taille de l'index : La taille d'un index Elasticsearch est directement liée au nombre de champs indexés. En excluant les champs inutiles, vous pouvez réduire la taille de votre index, ce qui permet d'accélérer les performances de recherche et d'indexation.

Configurer Elasticsearch pour exclure des champs

Pour exclure un champ de l'indexation dans Elasticsearch, vous pouvez utiliser la propriété "index" dans le mappage du champ. En définissant la propriété "index" à "false", Elasticsearch n'indexera pas le champ, et il ne sera pas consultable ni disponible pour les agrégations.

Voici un exemple d'exclusion d'un champ de l'indexation à l'aide du mappage Elasticsearch :

Dans cet exemple, nous créons un nouvel index appelé "my_index" avec un seul champ appelé "field_to_exclude". En définissant la propriété "index" à "false", nous indiquons à Elasticsearch de ne pas indexer ce champ. Le champ reste cependant disponible dans le document source.

Meilleures pratiques pour exclure des champs de l'indexation

  1. Analysez vos données : Avant d'exclure des champs de l'indexation, il est essentiel d'analyser vos données et de comprendre quels champs sont nécessaires à la recherche et à l'agrégation. Cela vous aidera à prendre des décisions éclairées sur les champs à exclure.
  2. Testez vos modifications : Lorsque vous excluez des champs de l'indexation, il est essentiel de tester vos modifications pour vous assurer que vos fonctionnalités de recherche et d'agrégation fonctionnent toujours comme prévu. Cela peut vous aider à éviter des problèmes inattendus ou des problèmes de performance.
  3. Contrôlez les performances : Après avoir exclu des champs de l'indexation, surveillez les performances de votre cluster Elasticsearch pour vous assurer que vos modifications ont eu l'effet escompté. Cela peut vous aider à identifier les optimisations supplémentaires qui pourraient être nécessaires.
  4. Utiliser le filtrage à la source : Si vous avez besoin de stocker un champ dans Elasticsearch mais que vous ne souhaitez pas qu'il soit consultable ou disponible pour les agrégations, envisagez d'utiliser le filtrage des sources. Cela vous permet de stocker le champ dans le champ _source mais de l'exclure de l'index.

Conclusion

L'exclusion de champs de l'indexation dans Elasticsearch peut contribuer à améliorer les performances, à réduire les coûts de stockage et à minimiser la taille globale de votre index. En analysant soigneusement vos données et en comprenant quels champs sont nécessaires à la recherche et à l'agrégation, vous pouvez prendre des décisions éclairées sur les champs à exclure. Testez toujours vos modifications et surveillez les performances de votre cluster Elasticsearch pour vous assurer que vos optimisations ont l'effet escompté.

Pour aller plus loin

Prêt à créer des expériences de recherche d'exception ?

Une recherche suffisamment avancée ne se fait pas avec les efforts d'une seule personne. Elasticsearch est alimenté par des data scientists, des ML ops, des ingénieurs et bien d'autres qui sont tout aussi passionnés par la recherche que vous. Mettons-nous en relation et travaillons ensemble pour construire l'expérience de recherche magique qui vous permettra d'obtenir les résultats que vous souhaitez.

Jugez-en par vous-même