Elasticsearch-py: Elasticsearch के साथ काम करना सीखें

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय

Elasticsearch एक शक्तिशाली डिस्ट्रीब्यूटेड सर्च इंजन है जो Apache Lucene पर आधारित है। इसका उपयोग फुल-टेक्स्ट सर्च, लॉगिंग, मॉनिटरिंग और बड़े डेटा एनालिटिक्स के लिए किया जाता है। Python के साथ Elasticsearch को इंटीग्रेट करने के लिए आधिकारिक क्लाइंट elasticsearch-py का उपयोग किया जाता है, जो Python कोड के माध्यम से सभी Elasticsearch API तक पूर्ण एक्सेस प्रदान करता है।

elasticsearch-py लाइब्रेरी डेवलपर्स को वेब सर्विसेज, एनालिटिकल टूल्स और मॉनिटरिंग सिस्टम में एडवांस्ड सर्च, एग्रीगेशन और बड़े डेटा प्रोसेसिंग को सीधे Python एप्लिकेशन में लागू करने की सुविधा देती है।

elasticsearch-py लाइब्रेरी का परिचय

Elasticsearch-py Elasticsearch के लिए आधिकारिक Python क्लाइंट है। यह लाइब्रेरी RESTful API के माध्यम से Elasticsearch के सभी फीचर्स तक लो-लेवल एक्सेस प्रदान करती है, साथ ही एक सुविधाजनक Python इंटरफेस भी देती है।

लाइब्रेरी की मुख्य विशेषताएं:

  • आधिकारिक सपोर्ट: Elastic टीम द्वारा विकसित और मेंटेन की जाती है
  • पूर्ण संगतता: Elasticsearch के सभी वर्जन को सपोर्ट करती है
  • ऑटोमैटिक नोड डिस्कवरी: क्लस्टर के नोड्स को ऑटोमैटिकली डिटेक्ट और कनेक्ट कर सकती है
  • कनेक्शन पूलिंग: क्लस्टर के साथ कनेक्शन का कुशल प्रबंधन
  • एरर हैंडलिंग: बिल्ट-इन एक्सेप्शन हैंडलिंग सिस्टम
  • सीरियलाइजेशन: Python ऑब्जेक्ट्स का JSON में ऑटोमैटिक कन्वर्जन

इंस्टॉलेशन और क्लस्टर से कनेक्शन

इंस्टॉलेशन

pip install elasticsearch

SSL सर्टिफिकेट के साथ काम करने के लिए:

pip install elasticsearch[async]

लोकल क्लस्टर से कनेक्शन

from elasticsearch import Elasticsearch

es = Elasticsearch("http://localhost:9200")

ऑथराइजेशन के साथ रिमोट क्लस्टर से कनेक्शन

es = Elasticsearch(
    "https://your-cluster:9200",
    basic_auth=("user", "password"),
    verify_certs=True
)

API-की का उपयोग करके कनेक्शन

es = Elasticsearch(
    "https://your-cluster:9200",
    api_key="your_api_key",
    verify_certs=True
)

कई नोड्स से कनेक्शन

es = Elasticsearch(
    [
        "https://node1:9200",
        "https://node2:9200",
        "https://node3:9200"
    ],
    basic_auth=("user", "password")
)

Elasticsearch की मुख्य अवधारणाएं

  • इंडेक्स — रिलेशनल डेटाबेस में टेबल के समान, इसमें समान संरचना के दस्तावेज़ होते हैं
  • दस्तावेज़ — JSON ऑब्जेक्ट जो इंडेक्स में स्टोर होता है, टेबल में रिकॉर्ड के समान
  • फील्ड — दस्तावेज़ का गुण, टेबल में कॉलम के समान
  • मैपिंग — दस्तावेज़ की संरचना और फील्ड के प्रकारों का विवरण
  • शार्ड — इंडेक्स डेटा स्टोरेज की भौतिक इकाई
  • रिप्लिका — फॉल्ट टॉलरेंस के लिए शार्ड की कॉपी

इंडेक्स का प्रबंधन

इंडेक्स और स्कीमा बनाना

mapping = {
    "mappings": {
        "properties": {
            "title": {"type": "text", "analyzer": "standard"},
            "tags": {"type": "keyword"},
            "published": {"type": "date"},
            "content": {"type": "text"},
            "author": {"type": "keyword"},
            "views": {"type": "integer"}
        }
    },
    "settings": {
        "number_of_shards": 1,
        "number_of_replicas": 0
    }
}

es.indices.create(index="articles", body=mapping)

इंडेक्स हटाना

es.indices.delete(index="articles")

अनुशंसाएँ