Elasticsearch ব্যবহার করে একটি Simple Search Application তৈরি করা একটি চমৎকার এবং কার্যকরী উপায় লগ ডেটা বা অন্য কোনো ডেটা সহজে সার্চ এবং রিট্রিভ করার জন্য। নিচে একটি বেসিক স্টেপ-বাই-স্টেপ গাইড দেওয়া হলো, যা অনুসরণ করে আপনি সহজেই একটি সার্চ অ্যাপ্লিকেশন তৈরি করতে পারবেন। এই অ্যাপ্লিকেশনটি Python এবং Flask ব্যবহার করে তৈরি করা হবে।
Elasticsearch সেটআপ করার জন্য:
http://localhost:9200
এ চলে।Python এবং Flask ইন্সটল করার জন্য:
pip install flask elasticsearch
Elasticsearch-এ ডেটা ইনডেক্স করতে একটি Python স্ক্রিপ্ট তৈরি করতে হবে। নিচে একটি উদাহরণ দেওয়া হলো:
from elasticsearch import Elasticsearch
# Elasticsearch সার্ভার কানেক্ট করা
es = Elasticsearch([{'host': 'localhost', 'port': 9200}])
# ইনডেক্স এবং ডকুমেন্ট তৈরি করা
def index_data():
data = [
{"title": "Elasticsearch Tutorial", "content": "Learn Elasticsearch step by step"},
{"title": "Flask API Development", "content": "Building APIs using Flask and Python"},
{"title": "Python Programming", "content": "Python programming basics and advanced concepts"}
]
for i, doc in enumerate(data):
es.index(index="articles", id=i, body=doc)
if __name__ == "__main__":
index_data()
Elasticsearch
ক্লায়েন্ট ব্যবহার করে সার্ভারে কানেক্ট করা হয়েছে।index_data
ফাংশন বিভিন্ন ডকুমেন্ট ইনডেক্স করেছে articles
নামে একটি ইনডেক্সে। ইনডেক্সের প্রতিটি ডকুমেন্টে দুটি ফিল্ড আছে: title
এবং content
।এবার Flask ব্যবহার করে একটি সার্চ API তৈরি করা হবে, যা Elasticsearch থেকে ডেটা সার্চ করতে সাহায্য করবে।
from flask import Flask, request, jsonify
from elasticsearch import Elasticsearch
app = Flask(__name__)
es = Elasticsearch([{'host': 'localhost', 'port': 9200}])
# সার্চ API তৈরি করা
@app.route('/search', methods=['GET'])
def search():
query = request.args.get('q')
if not query:
return jsonify({"error": "Query parameter 'q' is required"}), 400
# Elasticsearch কিউরি
response = es.search(index="articles", body={
"query": {
"multi_match": {
"query": query,
"fields": ["title", "content"]
}
}
})
# সার্চ রেজাল্ট রিটার্ন করা
results = []
for hit in response['hits']['hits']:
results.append(hit["_source"])
return jsonify(results)
if __name__ == '__main__':
app.run(debug=True)
/search
এ সার্চ কিউরি গ্রহণ করে।multi_match
কিউরি ব্যবহার করে title
এবং content
ফিল্ডে কিউরি চালানো হয়েছে।Flask অ্যাপ্লিকেশন চালানোর জন্য নিচের কমান্ড ব্যবহার করুন:
python app.py
এবার আপনার সার্চ API চলবে http://localhost:5000
এ। আপনি এখন সার্চ করতে পারেন:
http://localhost:5000/search?q=Python
এটি "Python" টার্ম দিয়ে সার্চ করবে এবং Elasticsearch ইনডেক্সে থাকা সব ডকুমেন্ট রিটার্ন করবে যা "Python" টার্মটির সাথে মিলে।
এই Simple Search Application Elasticsearch এবং Flask ব্যবহার করে তৈরি করা হয়েছে। এটি একটি বেসিক উদাহরণ, যা ব্যবহার করে আপনি আরও জটিল অ্যাপ্লিকেশন তৈরি করতে পারেন। অ্যাপ্লিকেশনটিতে আরও ফিচার যোগ করতে পারেন, যেমন পেজিনেশন, অ্যাডভান্সড সার্চ অপশন, এবং Kibana দিয়ে ভিজ্যুয়ালাইজেশন ইন্টিগ্রেশন।