Elasticsearch & Full Text Search Systems · Leçon

Bonnes pratiques pour les performances d’indexation

Mettez en œuvre les bonnes pratiques d’indexation des données, telles que l’indexation en masse, les intervalles d’actualisation et la fusion des segments, afin d’améliorer la vitesse d’ingestion.

Leçon 2 sur 411 étapes

Bonnes pratiques pour les performances d’indexation est une leçon Elasticsearch & Full Text Search Systems gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Elasticsearch & Full Text Search Systems, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Elasticsearch & Full Text Search Systems comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Boosting Indexing Speed

Why is indexing performance crucial? It's about efficiently adding data to Elasticsearch. Fast indexing means your data is searchable sooner and your cluster resources are used effectively.

This lesson will show you how to speed things up!

How Indexing Works

When you index a document, Elasticsearch doesn't just store it. It goes through a process:

  • Analysis: Text fields are broken down into terms.
  • Storage: Document is added to Lucene segments.
  • Refresh: Segments are made searchable.
  • Flush: Segments are written to disk.

Each step has performance implications.

Single Docs: A Performance Bottleneck

Indexing documents one by one means a separate network request and processing overhead for each. Imagine sending thousands of individual letters instead of one large package.

This approach is fine for occasional updates, but for large datasets, it's very inefficient and slow.

Speed Up with Bulk Indexing

Bulk indexing allows you to send multiple index, update, or delete operations in a single API request.

This drastically reduces network round trips and overhead, making data ingestion much faster. It's the go-to method for loading large amounts of data.

Your First Bulk Request

The bulk API uses a special format: action_and_metadata followed by the document_body. Each pair must be on its own line.

Try indexing two documents in one go:

POST /_bulk
{"index": {"_index": "products", "_id": "1"}}
{"name": "Laptop Pro X", "price": 1200}
{"index": {"_index": "products", "_id": "2"}}
{"name": "Wireless Mouse", "price": 25}

Refresh Intervals: Searchability vs. Speed

When a document is indexed, it's not immediately searchable. Elasticsearch periodically "refreshes" an index, making newly indexed documents visible for search.

  • Frequent refreshes: Documents become searchable faster, but consume more resources (CPU, I/O).
  • Less frequent refreshes: Slower searchability, but better indexing performance.

The default refresh interval is 1 second.

Optimize Refresh for Bulk Loads

For large bulk indexing operations, you can temporarily disable refreshes or increase the interval. Remember to set it back afterwards!

Disable refreshes:

PUT /my_index/_settings
{
  "index": {
    "refresh_interval": "-1"
  }
}

Lucene Segments & Merging

Elasticsearch stores data in Lucene segments. Each refresh creates new segments. Too many small segments can degrade query performance.

Elasticsearch automatically merges smaller segments into larger ones in the background. This process is resource-intensive but crucial for query speed.

When to Force Merge

For indices that are no longer being written to (read-only), you can explicitly trigger a force merge to consolidate segments into a single segment (or a few larger ones).

This can significantly improve search performance, but it's a heavy operation and should only be done on static indices.

POST /my_static_index/_forcemerge?max_num_segments=1

Indexing Best Practices Check

You're about to ingest 1 million new documents into an Elasticsearch index. Which of the following strategies would best improve the indexing speed?

Recap: Faster Indexing

Great job! You've learned key strategies to optimize Elasticsearch indexing performance:

  • Use the Bulk API for large data loads.
  • Adjust refresh intervals (e.g., disable/increase) during bulk indexing.
  • Understand segment merging and consider _forcemerge for static indices.

These practices ensure your data is ingested quickly and efficiently!

Gratuit pour commencer

Apprends Elasticsearch & Full Text Search Systems avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
12
Leçons
48

Questions Fréquemment Posées

La leçon « Bonnes pratiques pour les performances d’indexation » est-elle gratuite ?

Oui — le texte complet de « Bonnes pratiques pour les performances d’indexation » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Elasticsearch & Full Text Search Systems, passe à CoddyKit PRO. Le cours Elasticsearch & Full Text Search Systems comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Bonnes pratiques pour les performances d’indexation » ?

Mettez en œuvre les bonnes pratiques d’indexation des données, telles que l’indexation en masse, les intervalles d’actualisation et la fusion des segments, afin d’améliorer la vitesse d’ingestion. Tu pratiques Elasticsearch & Full Text Search Systems avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Elasticsearch & Full Text Search Systems ?

Aucune expérience préalable n'est requise. Elasticsearch & Full Text Search Systems sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Bonnes pratiques pour les performances d’indexation » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Elasticsearch & Full Text Search Systems ?

Oui. Chaque leçon Elasticsearch & Full Text Search Systems inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Stratégies d’optimisation des requêtes
  2. Bonnes pratiques pour les performances d’indexation
  3. Mise en cache et concurrence
  4. Profilage et journaux des requêtes lentes
← Retour à Elasticsearch & Full Text Search Systems