Elasticsearch ialah analisis teguh dan enjin carian yang cemerlang dalam skalabiliti, fleksibiliti dan kelajuan. Elasticsearch menyediakan penyelesaian yang boleh dipercayai, tidak kira sama ada anda perlu bekerja dengan jumlah data yang besar atau memerlukan masa carian yang sangat cepat. Siaran ini akan membincangkan beberapa kes penggunaan yang paling popular dan penting untuk Elasticsearch dan menyediakan contoh Node.js yang berguna untuk membantu anda dalam mempraktikkan kes penggunaan ini.
1️⃣ Carian Teks Penuh
Salah satu kes penggunaan utama untuk Elasticsearch ialah carian teks penuh, yang penting untuk aplikasi yang perlu mencari dan mendapatkan semula dokumen dengan cepat. Sama ada anda sedang membina enjin carian untuk tapak e-dagang, blog atau sistem pengurusan dokumen, keupayaan Elasticsearch untuk mengindeks dan mencari teks dengan cekap menjadikannya pilihan yang ideal.
Kes Penggunaan: Carian Produk E-Dagang
Dalam platform e-dagang, pengguna perlu mencari produk menggunakan pelbagai kata kunci, penapis dan kategori. Elasticsearch membenarkan keupayaan carian teks penuh yang berkuasa, membolehkan ciri seperti autolengkap, carian kabur, padanan sinonim dan carian bermuka.
Contoh:
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️⃣ Log Masa Nyata dan Analisis Data Acara
Elasticsearch digunakan secara meluas untuk menganalisis data log dan peristiwa dalam masa nyata, menjadikannya pilihan popular untuk alat pemantauan dan pemerhatian. Dengan mengindeks log dan peristiwa, Elasticsearch membolehkan anda membuat pertanyaan dan memvisualisasikan data untuk mendapatkan cerapan tentang prestasi sistem, keselamatan dan gelagat aplikasi.
Kes Penggunaan: Pengurusan Log dan Pemantauan
Dalam persekitaran DevOps moden, mengurus log daripada pelbagai sumber seperti pelayan, aplikasi dan peranti rangkaian adalah penting untuk mengekalkan kesihatan sistem. Tindanan ELK (Elasticsearch, Logstash, Kibana) ialah penyelesaian yang berkuasa untuk pengurusan log.
Contoh:
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️⃣ Carian Data Geospatial
Elasticsearch menawarkan sokongan teguh untuk data geospatial, menjadikannya pilihan yang sangat baik untuk aplikasi yang perlu mengendalikan dan menanyakan maklumat berasaskan lokasi. Daripada mencari tempat berdekatan sehinggalah kepada analitik geospatial yang kompleks, Elasticsearch menyediakan alatan yang berkuasa untuk bekerja dengan data geografi.
Kes Penggunaan: Perkhidmatan Berdasarkan Lokasi
Aplikasi seperti perkongsian perjalanan, perkhidmatan penghantaran dan platform hartanah selalunya perlu mencari entiti dalam kawasan geografi tertentu atau mengira jarak antara titik. Keupayaan geospatial Elasticsearch membolehkan penapisan geo, pengagregatan geo dan penghalaan.
Contoh:
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️⃣ Pemantauan Prestasi Aplikasi (APM)
Elasticsearch juga biasanya digunakan untuk Pemantauan Prestasi Aplikasi (APM), di mana ia membantu dalam menjejak prestasi dan ketersediaan aplikasi perisian. Dengan mengumpul metrik, jejak dan log, Elasticsearch mendayakan pemantauan masa nyata dan membantu dalam mendiagnosis isu prestasi.
Kes Penggunaan: Memantau Prestasi Aplikasi
Dalam seni bina perkhidmatan mikro, pemantauan prestasi perkhidmatan individu dan interaksinya adalah penting. Elasticsearch boleh membantu mengesan permintaan, memantau kependaman dan menjejaki ralat dalam masa nyata.
Contoh:
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️⃣ Maklumat Keselamatan dan Pengurusan Acara (SIEM)
Elasticsearch memainkan peranan penting dalam sistem Pengurusan Maklumat dan Acara Keselamatan (SIEM), yang digunakan untuk mengesan, menganalisis dan bertindak balas terhadap ancaman keselamatan. Dengan menelan dan menganalisis data berkaitan keselamatan, Elasticsearch membantu dalam mengenal pasti kemungkinan pelanggaran dan anomali keselamatan.
Kes Penggunaan: Pengesanan Ancaman dan Tindak Balas
Dalam keselamatan siber, mengesan dan bertindak balas terhadap ancaman dengan cepat adalah penting. Keupayaan Elasticsearch untuk memproses dan menganalisis sejumlah besar data keselamatan membantu dalam pengesanan anomali, analisis korelasi dan pelaporan pematuhan.
Contoh:
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️⃣ Pemperibadian dan Pengesyoran Kandungan
Elasticsearch juga boleh digunakan untuk menggerakkan enjin pemperibadian kandungan, di mana ia membantu dalam menyampaikan pengesyoran diperibadikan kepada pengguna berdasarkan pilihan, gelagat dan interaksi masa lalu mereka.
Kes Penggunaan: Pengesyoran Kandungan Diperibadikan
Dalam platform dipacu kandungan seperti perkhidmatan penstriman, tapak web berita atau kedai dalam talian, menyampaikan kandungan diperibadikan boleh meningkatkan penglibatan pengguna dengan ketara. Elasticsearch boleh digunakan untuk memperibadikan hasil carian dan mengesyorkan kandungan berkaitan.
Contoh:
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 ??
Atas ialah kandungan terperinci Membuka Kunci Kuasa Elasticsearch: Kes Penggunaan Teratas untuk Carian dan Analitis Masa Nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!