Maison  >  Article  >  interface Web  >  Libérer la puissance d'Elasticsearch : principaux cas d'utilisation de la recherche et de l'analyse en temps réel

Libérer la puissance d'Elasticsearch : principaux cas d'utilisation de la recherche et de l'analyse en temps réel

WBOY
WBOYoriginal
2024-08-28 06:02:36362parcourir

Unlocking the Power of Elasticsearch: Top Use Cases for Real-Time Search and Analytics

Elasticsearch est un moteur d'analyse et de recherche robuste qui excelle en termes d'évolutivité, de flexibilité et de rapidité. Elasticsearch fournit des solutions fiables, que vous ayez besoin de travailler avec d'énormes quantités de données ou que vous ayez besoin de temps de recherche extrêmement rapides. Cet article abordera certains des cas d'utilisation les plus populaires et les plus significatifs d'Elasticsearch et fournira des exemples Node.js utiles pour vous aider à mettre ces cas d'utilisation en pratique.

1️⃣ Recherche en texte intégral

L'un des principaux cas d'utilisation d'Elasticsearch est la recherche en texte intégral, qui est cruciale pour les applications qui doivent rechercher et récupérer rapidement des documents. Que vous construisiez un moteur de recherche pour un site de commerce électronique, un blog ou un système de gestion de documents, la capacité d'Elasticsearch à indexer et rechercher efficacement du texte en fait un choix idéal.

Cas d'utilisation : recherche de produits de commerce électronique

Dans une plateforme de commerce électronique, les utilisateurs doivent rechercher des produits à l'aide de divers mots-clés, filtres et catégories. Elasticsearch offre de puissantes capacités de recherche en texte intégral, activant des fonctionnalités telles que la saisie semi-automatique, la recherche floue, la correspondance de synonymes et la recherche à facettes.

Exemple :

const { Client } = require('@elastic/elasticsearch');
const client = new Client({ node: 'http://localhost:9200' });

async function searchProducts(keyword) {
    const { body } = await client.search({
        index: 'products',
        body: {
            query: {
                match: { product_name: keyword }
            }
        }
    });
    return body.hits.hits;
}

searchProducts('laptop').then(results => console.log(results)).catch(console.error);

2️⃣ Analyse des données des journaux et des événements en temps réel

Elasticsearch est largement utilisé pour analyser les données de journaux et d'événements en temps réel, ce qui en fait un choix populaire pour les outils de surveillance et d'observabilité. En indexant les journaux et les événements, Elasticsearch vous permet d'interroger et de visualiser des données pour obtenir des informations sur les performances du système, la sécurité et le comportement des applications.

Cas d'utilisation : gestion et surveillance des journaux

Dans les environnements DevOps modernes, la gestion des journaux provenant de diverses sources telles que les serveurs, les applications et les périphériques réseau est essentielle pour maintenir la santé du système. La pile ELK (Elasticsearch, Logstash, Kibana) est une solution puissante pour la gestion des logs.

Exemple :

const { Client } = require('@elastic/elasticsearch');
const client = new Client({ node: 'http://localhost:9200' });

async function getRecentLogs() {
    const { body } = await client.search({
        index: 'logs',
        body: {
            query: {
                range: {
                    '@timestamp': {
                        gte: 'now-1h',
                        lte: 'now'
                    }
                }
            }
        }
    });
    return body.hits.hits;
}

getRecentLogs().then(logs => console.log(logs)).catch(console.error);

3️⃣ Recherche de données géospatiales

Elasticsearch offre une prise en charge robuste des données géospatiales, ce qui en fait un excellent choix pour les applications qui doivent gérer et interroger des informations basées sur la localisation. De la recherche de lieux à proximité aux analyses géospatiales complexes, Elasticsearch fournit des outils puissants pour travailler avec des données géographiques.

Cas d'utilisation : services basés sur la localisation

Les applications telles que le covoiturage, les services de livraison et les plateformes immobilières doivent souvent rechercher des entités dans une zone géographique spécifique ou calculer les distances entre les points. Les capacités géospatiales d'Elasticsearch permettent le géofiltrage, la géo-agrégation et le routage.

Exemple :

const { Client } = require('@elastic/elasticsearch');
const client = new Client({ node: 'http://localhost:9200' });

async function searchNearbyLocations(lat, lon, distance) {
    const { body } = await client.search({
        index: 'places',
        body: {
            query: {
                geo_distance: {
                    distance: distance,
                    location: {
                        lat: lat,
                        lon: lon
                    }
                }
            }
        }
    });
    return body.hits.hits;
}

searchNearbyLocations(40.7128, -74.0060, '5km').then(results => console.log(results)).catch(console.error);

4️⃣ Surveillance des performances des applications (APM)

Elasticsearch est également couramment utilisé pour la surveillance des performances des applications (APM), où il permet de suivre les performances et la disponibilité des applications logicielles. En collectant des métriques, des traces et des journaux, Elasticsearch permet une surveillance en temps réel et aide à diagnostiquer les problèmes de performances.

Cas d'utilisation : surveillance des performances des applications

Dans une architecture de microservices, la surveillance des performances des services individuels et de leurs interactions est cruciale. Elasticsearch peut aider à tracer les requêtes, à surveiller la latence et à suivre les erreurs en temps réel.

Exemple :

const { Client } = require('@elastic/elasticsearch');
const client = new Client({ node: 'http://localhost:9200' });

async function getAverageResponseTime() {
    const { body } = await client.search({
        index: 'apm',
        body: {
            query: {
                match: { status: 'success' }
            },
            aggs: {
                avg_response_time: {
                    avg: { field: 'response_time' }
                }
            }
        }
    });
    return body.aggregations.avg_response_time.value;
}

getAverageResponseTime().then(time => console.log(`Average Response Time: ${time}ms`)).catch(console.error);

5️⃣ Gestion des informations et des événements de sécurité (SIEM)

Elasticsearch joue un rôle essentiel dans les systèmes de gestion des informations et des événements de sécurité (SIEM), qui sont utilisés pour détecter, analyser et répondre aux menaces de sécurité. En ingérant et en analysant les données liées à la sécurité, Elasticsearch aide à identifier les failles et anomalies de sécurité potentielles.

Cas d'utilisation : Détection et réponse aux menaces

En cybersécurité, détecter et répondre rapidement aux menaces est vital. La capacité d'Elasticsearch à traiter et analyser de grands volumes de données de sécurité facilite la détection des anomalies, l'analyse de corrélation et la création de rapports de conformité.

Exemple :

const { Client } = require('@elastic/elasticsearch');
const client = new Client({ node: 'http://localhost:9200' });

async function detectSuspiciousLoginAttempts() {
    const { body } = await client.search({
        index: 'security',
        body: {
            query: {
                bool: {
                    must: [
                        { match: { event_type: 'login' }},
                        { range: { login_attempts: { gt: 5 }}}
                    ]
                }
            }
        }
    });
    return body.hits.hits;
}

detectSuspiciousLoginAttempts().then(attempts => console.log(attempts)).catch(console.error);

6️⃣ Personnalisation du contenu et recommandations

Elasticsearch peut également être utilisé pour alimenter les moteurs de personnalisation de contenu, où il permet de fournir des recommandations personnalisées aux utilisateurs en fonction de leurs préférences, de leurs comportements et de leurs interactions passées.

Cas d'utilisation : recommandations de contenu personnalisées

Sur les plateformes axées sur le contenu telles que les services de streaming, les sites Web d'actualités ou les boutiques en ligne, la fourniture de contenu personnalisé peut améliorer considérablement l'engagement des utilisateurs. Elasticsearch peut être utilisé pour personnaliser les résultats de recherche et recommander du contenu associé.

Exemple :

const { Client } = require('@elastic/elasticsearch');
const client = new Client({ node: 'http://localhost:9200' });

async function getPersonalizedRecommendations(userId) {
    const { body } = await client.search({
        index: 'user_content',
        body: {
            query: {
                more_like_this: {
                    fields: ['description', 'title'],
                    like: userId,
                    min_term_freq: 1,
                    max_query_terms: 12
                }
            }
        }
    });
    return body.hits.hits;
}

getPersonalizedRecommendations('user123').then(recommendations => console.log(recommendations)).catch(console.error);

7️⃣ Business Intelligence and Data Analytics

Elasticsearch’s ability to handle and analyze large datasets in real time makes it an excellent tool for business intelligence and data analytics. Companies can leverage Elasticsearch to gain insights into their operations, customer behavior, and market trends.

Use Case: Real-Time Business Analytics

Businesses often need to analyze data from multiple sources to make informed decisions. Elasticsearch can be used to analyze sales data, customer behavior, and market trends in real-time.

Example:

const { Client } = require('@elastic/elasticsearch');
const client = new Client({ node: 'http://localhost:9200' });

async function analyzeSalesData() {
    const { body } = await client.search({
        index: 'sales',
        body: {
            query: {
                range: {
                    sale_date: {
                        gte: 'now-1M/M',
                        lte: 'now/M'
                    }
                }
            },
            aggs: {
                sales_by_region: {
                    terms: { field: 'region.keyword' }
                }
            }
        }
    });
    return body.aggregations.sales_by_region.buckets;
}

analyzeSalesData().then(data => console.log(data)).catch(console.error);

Conclusion

Elasticsearch is a flexible tool that may be used for many different purposes, including real-time analytics and full-text search. Elasticsearch is a great option for any application that needs strong search and analytical capabilities because of its speed, scalability, and flexibility. This article's Node.js examples show you how to take advantage of Elasticsearch's robust capabilities to create effective, data-driven solutions for your application.

That's all folks ??

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn