অ্যাপাচি সলর (Apache Solr) একটি শক্তিশালী সার্চ প্ল্যাটফর্ম যা Apache Lucene এর উপর ভিত্তি করে তৈরি। সলর ব্যবহারকারীদের REST API প্রদান করে, যার মাধ্যমে ডেটা ইনডেক্সিং, সার্চ কুয়েরি, ডেটা আপডেট, ডিলিট করা, এবং অন্যান্য কার্যক্রম সহজেই HTTP রিকোয়েস্টের মাধ্যমে করা সম্ভব হয়। সলরের REST API ব্যবহারের মাধ্যমে আপনি সার্চ কুয়েরি পরিচালনা, ডেটা ব্যাকআপ এবং অন্যান্য সার্চ অপারেশন সরাসরি ওয়েব বা অন্যান্য অ্যাপ্লিকেশন থেকে করতে পারেন।
এই টিউটোরিয়ালে, আমরা সলর এবং REST API ব্যবহার করে ডেটা ইন্টারঅ্যাকশনের বিভিন্ন পদ্ধতি নিয়ে আলোচনা করব।
Solr REST API Overview
REST API (Representational State Transfer API) সলরের একটি শক্তিশালী বৈশিষ্ট্য, যা HTTP প্রটোকল ব্যবহার করে সলরের ফিচারগুলির সাথে যোগাযোগ করার সুযোগ দেয়। সলর মূলত GET, POST, PUT, এবং DELETE HTTP মেথডগুলির মাধ্যমে API রিকোয়েস্ট গ্রহণ করে এবং সার্ভারে প্রয়োজনীয় ডেটা প্রক্রিয়া ও রিটার্ন করে।
Solr REST API এর প্রধান সুবিধা:
- Scalable: HTTP প্রোটোকল ব্যবহার করে, সলরের API খুব সহজেই ওয়েব বা মোবাইল অ্যাপ্লিকেশনের সাথে ইন্টিগ্রেট করা যায়।
- Easy Integration: REST API সলরকে অন্যান্য সিস্টেম, যেমন ওয়েব অ্যাপ্লিকেশন বা মোবাইল অ্যাপ্লিকেশনের সাথে একীভূত করতে সহজ করে।
- Flexible: ব্যবহারকারীরা HTTP রিকোয়েস্টের মাধ্যমে সলরের সার্চ অপারেশন ও ডেটা পরিচালনা করতে পারেন।
Solr REST API Endpoints
সলর REST API প্রধানত search, indexing, update, delete এবং management এর মতো বিভিন্ন কর্মক্ষমতার জন্য ব্যবহৃত হয়।
1. Search Endpoint (/select)
Search Endpoint সলরের /select API দিয়ে সার্চ কুয়েরি করা হয়। এটি মূলত GET মেথড ব্যবহার করে সার্চের ফলাফল প্রদান করে।
Search Example:
http://localhost:8983/solr/your_core/select?q=apple&wt=json
এখানে:
- your_core: সলরের কোর নাম যা আপনি সার্চ করতে চান।
- q=apple: সার্চ কুয়েরি, যেখানে "apple" শব্দটি সার্চ করা হচ্ছে।
- wt=json: আউটপুট ফরম্যাট, এখানে JSON আউটপুট চাওয়া হয়েছে।
Search Parameters:
- q: সার্চ কুয়েরি।
- fq: ফিল্টার কুয়েরি, যা সার্চ রেজাল্ট ফিল্টার করতে ব্যবহৃত হয়।
- start: পৃষ্ঠার শুরুর পয়েন্ট।
- rows: রিটার্ন হওয়া ফলাফলের সংখ্যা।
2. Indexing Endpoint (/update)
সলরের /update API ব্যবহার করে ডেটা ইনডেক্সিং করা হয়। এটি POST মেথড ব্যবহার করে ডেটা ইনডেক্স করতে পারে, যেমন JSON বা XML ফরম্যাটে ডেটা পাঠানো হয়।
Indexing Example:
curl http://localhost:8983/solr/your_core/update?commit=true -d '
[
{
"id": "1",
"title": "Apple",
"description": "Fresh and delicious apple."
},
{
"id": "2",
"title": "Orange",
"description": "Sweet orange fruit."
}
]'
এখানে:
- commit=true: ইনডেক্স করার পর ডেটা স্বয়ংক্রিয়ভাবে commit হয়।
POST রিকোয়েস্টে JSON ডেটা পাঠানো হয়, যা সলর ইনডেক্সে সংরক্ষণ করে।
Indexing Parameters:
- id: ডকুমেন্টের ইউনিক আইডি।
- commit: ইনডেক্সিং সম্পন্ন হওয়ার পর পরিবর্তনগুলি ফাইনাল কমিট করা।
3. Update Endpoint (/update)
সলরের update API মাধ্যমে আপনি ডেটা আপডেট করতে পারেন। এখানে POST বা PUT মেথড ব্যবহার করা যায়।
Update Example:
curl http://localhost:8983/solr/your_core/update?commit=true -d '
[
{
"id": "1",
"title": "Updated Apple",
"description": "Fresh and crispy apple."
}
]'
এখানে id এর মাধ্যমে আপনি ইতিমধ্যে ইনডেক্স করা ডেটাকে আপডেট করছেন।
4. Delete Endpoint (/update)
সলরের delete API দিয়ে আপনি ডেটা ডিলিট করতে পারেন। এটি POST বা DELETE মেথড ব্যবহার করে করা যায়।
Delete Example:
curl http://localhost:8983/solr/your_core/update?commit=true -d '
{
"delete": {
"id": "1"
}
}'
এখানে, id=1 দ্বারা ঐ ডকুমেন্টটি ডিলিট করা হয়েছে।
5. Core Administration Endpoint (/admin)
সলরের Core Administration API সলর কোরের প্রশাসনিক কার্যক্রম যেমন core creation, core reload, core status চেক করার জন্য ব্যবহৃত হয়।
Core Status Example:
http://localhost:8983/solr/admin/cores?action=STATUS&core=your_core
এটি সলরের কোরের বর্তমান স্ট্যাটাস রিটার্ন করবে।
Solr Data Interaction Example using REST API
এখন, সলরের সাথে ডেটা ইন্টারঅ্যাকশন করতে REST API ব্যবহার করার একটি উদাহরণ দেখি:
- Data Indexing:
একটি নতুন ডকুমেন্ট ইনডেক্স করা:
curl http://localhost:8983/solr/your_core/update?commit=true -d ' { "add": { "doc": { "id": "123", "title": "Mango", "description": "Sweet and juicy mango." } } }'
- Data Search:
"Mango" শর্তে সার্চ করা:
curl http://localhost:8983/solr/your_core/select?q=Mango&wt=json
- Data Deletion:
"id" 123 এর ডকুমেন্ট ডিলিট করা:
curl http://localhost:8983/solr/your_core/update?commit=true -d ' { "delete": { "id": "123" } }'
- Data Update:
"id" 123 এর ডকুমেন্ট আপডেট করা:
curl http://localhost:8983/solr/your_core/update?commit=true -d ' [ { "id": "123", "title": "Updated Mango", "description": "Sweet and ripe mango." } ]'
Solr and REST API Security
সলর REST API এর মাধ্যমে ডেটা ইন্টারঅ্যাকশন করা হলে, সুরক্ষা নিশ্চিত করা খুবই গুরুত্বপূর্ণ। সলর নিরাপত্তা কনফিগারেশন যেমন Basic Authentication, SSL/TLS Encryption, Role-Based Access Control ব্যবহার করে REST API এর মাধ্যমে ডেটা ইন্টারঅ্যাকশন সুরক্ষিত করা যায়।
Basic Authentication Example:
curl -u admin:admin_password http://localhost:8983/solr/your_core/select?q=Mango&wt=json
এখানে, admin এবং admin_password দিয়ে সলরের REST API তে সুরক্ষিত অ্যাক্সেস করা হয়েছে।
Conclusion
সলর এবং REST API ব্যবহার করে ডেটা ইন্টারঅ্যাকশন অত্যন্ত সহজ এবং দক্ষ। Search, Indexing, Update, Delete, এবং Core Administration এর মতো বিভিন্ন কার্যক্রম সলরের API এর মাধ্যমে সহজেই করা সম্ভব। সলরের REST API দিয়ে ডেটা ইন্টারঅ্যাকশন, সার্চ অপারেশন, এবং কনফিগারেশন পরিবর্তন করা যায়, যা সার্চ সিস্টেমের স্কেলেবিলিটি এবং কার্যকারিতা বাড়াতে সহায়ক।
Read more