Elasticsearch #
Elasticsearch adalah mesin pencari dan analitik terdistribusi yang kuat, yang memungkinkan penyimpanan, pencarian, dan analisis data dalam skala besar secara real-time. Elasticsearch sering digunakan untuk logging, monitoring, analitik data, dan pencarian teks penuh.
Instalasi Elasticsearch #
Untuk menggunakan Elasticsearch, pertama-tama Anda perlu menginstalnya di mesin lokal atau di server. Anda dapat mengikuti langkah-langkah instalasi resmi dari situs Elasticsearch.
Instalasi Elasticsearch di Python #
Untuk berinteraksi dengan Elasticsearch dari Python, kita menggunakan library elasticsearch-py
. Instal library ini menggunakan pip
:
pip install elasticsearch
Menghubungkan ke Elasticsearch dan Operasi Dasar #
Berikut adalah contoh bagaimana menghubungkan ke Elasticsearch dan melakukan operasi dasar seperti menambah, mencari, dan menghapus dokumen.
Menghubungkan ke Elasticsearch #
from elasticsearch import Elasticsearch
# Membuat koneksi ke Elasticsearch
es = Elasticsearch([{'host': 'localhost', 'port': 9200}])
Menambahkan Dokumen #
Untuk menambahkan dokumen ke indeks di Elasticsearch:
doc = {
'author': 'John Doe',
'text': 'Elasticsearch adalah mesin pencari yang kuat',
'timestamp': '2024-07-28T14:12:12'
}
# Menambahkan dokumen ke indeks 'test'
res = es.index(index='test', id=1, body=doc)
print(res['result'])
Mencari Dokumen #
Untuk mencari dokumen berdasarkan kueri:
# Mencari dokumen dengan kata 'pencari' di dalamnya
res = es.search(index='test', body={
'query': {
'match': {
'text': 'pencari'
}
}
})
for hit in res['hits']['hits']:
print(hit['_source'])
Mengambil Dokumen Berdasarkan ID #
Untuk mengambil dokumen tertentu berdasarkan ID:
res = es.get(index='test', id=1)
print(res['_source'])
Menghapus Dokumen #
Untuk menghapus dokumen dari indeks:
res = es.delete(index='test', id=1)
print(res['result'])
Penggunaan Lanjutan Elasticsearch #
Menggunakan Mapping #
Mapping digunakan untuk menentukan struktur dan jenis data di dalam indeks:
# Membuat mapping untuk indeks 'test'
mapping = {
'mappings': {
'properties': {
'author': {'type': 'text'},
'text': {'type': 'text'},
'timestamp': {'type': 'date'}
}
}
}
res = es.indices.create(index='test', body=mapping)
print(res)
Bulk Operations #
Untuk melakukan operasi massal seperti menambah atau menghapus banyak dokumen sekaligus:
from elasticsearch import helpers
# Menyiapkan data untuk bulk indexing
actions = [
{
'_op_type': 'index',
'_index': 'test',
'_id': 2,
'_source': {
'author': 'Jane Doe',
'text': 'Ini adalah dokumen kedua',
'timestamp': '2024-07-28T15:12:12'
}
},
{
'_op_type': 'index',
'_index': 'test',
'_id': 3,
'_source': {
'author': 'John Smith',
'text': 'Elasticsearch sangat berguna untuk pencarian teks penuh',
'timestamp': '2024-07-28T16:12:12'
}
}
]
# Menjalankan operasi bulk
helpers.bulk(es, actions)
Agregasi #
Agregasi digunakan untuk analitik dan pengelompokan data:
# Menjalankan agregasi untuk menghitung jumlah dokumen per author
res = es.search(index='test', body={
'size': 0,
'aggs': {
'authors': {
'terms': {
'field': 'author.keyword'
}
}
}
})
for bucket in res['aggregations']['authors']['buckets']:
print(f"Author: {bucket['key']}, Count: {bucket['doc_count']}")
Kesimpulan #
Elasticsearch adalah alat yang sangat kuat untuk pencarian dan analitik data dalam skala besar. Dengan library elasticsearch-py
, integrasi Elasticsearch dengan aplikasi Python menjadi mudah dan efisien. Untuk informasi lebih lanjut, Anda bisa merujuk ke dokumentasi resmi Elasticsearch dan elasticsearch-py.