Open Search
1️⃣ OpenSearch কি?
OpenSearch হলো একটি distributed search এবং analytics engine।
সহজভাবে বললে:
OpenSearch এমন একটি system যা বড় পরিমাণ data খুব দ্রুত search, filter, এবং analyze করতে পারে।
এটা মূলত তৈরি হয়েছে search engine + data analytics system হিসেবে।
সহজ উদাহরণ
ধরো একটি website এ ১ কোটি product আছে।
User লিখলো:
iphone
OpenSearch কয়েক মিলিসেকেন্ডে result দিবে:
Apple iPhone 15
Apple iPhone 14
iPhone Charger
iPhone Case
এটা traditional database এর চেয়ে অনেক দ্রুত।
2️⃣ OpenSearch কিভাবে কাজ করে
OpenSearch মূলত 3টি ধাপে কাজ করে।
Data → Indexing → Search Query → Result
Step 1: Data Indexing
প্রথমে data OpenSearch এ store করা হয়।
Example product data:
{
"name": "iPhone 15",
"brand": "Apple",
"price": 1200
}
এটাকে document বলা হয়।
এই document গুলো index এর মধ্যে রাখা হয়।
Step 2: Inverted Index তৈরি
OpenSearch text কে ভেঙে token বানায়।
Example:
Apple iPhone 15
Token হবে:
apple
iphone
15
তারপর OpenSearch তৈরি করে:
apple → document1
iphone → document1
15 → document1
এটাকে বলে inverted index।
এই কারণেই search খুব দ্রুত হয়।
Step 3: Search Query
User search করলো:
iphone
OpenSearch সরাসরি inverted index এ গিয়ে দেখে:
iphone → document1
তারপর result দেয়।
3️⃣ OpenSearch কেন ব্যবহার করা হয়
OpenSearch ব্যবহার করার মূল কারণ:
1️⃣ খুব দ্রুত search
Traditional database:
scan rows
OpenSearch:
index lookup
2️⃣ Full Text Search
Example:
User লিখলো:
python tutorial
Result:
Learn Python Tutorial
Python Programming Guide
Python Course
3️⃣ Real-time Analytics
তুমি real time data analyse করতে পারো।
Example:
website traffic
system logs
user activity
4️⃣ Large Data Handling
OpenSearch billions of documents handle করতে পারে।
4️⃣ Elasticsearch থেকে পার্থক্য
Elasticsearch এবং OpenSearch প্রায় একই ধরনের search engine।
কারণ:
OpenSearch মূলত Elasticsearch থেকে fork করা।
Main Difference
| Feature | OpenSearch | Elasticsearch |
|---|---|---|
| License | Open Source | Mostly proprietary |
| Owner | Community + Amazon | Elastic company |
| Cost | Free | কিছু feature paid |
কে OpenSearch তৈরি করেছে
Amazon OpenSearch project শুরু করে।
5️⃣ OpenSearch কোথায় ব্যবহার হয়
OpenSearch অনেক ধরনের system এ ব্যবহার হয়।
Example 1: E-commerce Product Search
ধরো তুমি Amazon এর মতো website বানিয়েছো।
User search করলো:
gaming laptop
Result:
ASUS Gaming Laptop
Dell Gaming Laptop
HP Gaming Laptop
এই search system OpenSearch দিয়ে তৈরি করা যায়।
Example 2: Log Monitoring
Server এ অনেক log তৈরি হয়।
Example:
login success
login failed
payment error
database error
OpenSearch দিয়ে easily search করা যায়।
Example:
error logs last 24 hours
Example 3: Data Analytics
OpenSearch dashboard দিয়ে data analyze করা যায়।
Example:
daily users
monthly sales
website traffic
Example 4: Recommendation System
User যদি search করে:
python book
System related result দেখাবে:
Python programming book
Advanced python guide
Python tutorial
Example 5: Security Monitoring
Security team OpenSearch দিয়ে detect করে:
suspicious login
attack attempts
server intrusion
Real Companies Use Cases
অনেক বড় বড় company search engine হিসেবে ব্যবহার করে:
Amazon
Netflix
Uber
Mentor Summary
OpenSearch কে সহজভাবে মনে রাখো:
Database → structured data store
OpenSearch → search + analytics engine
OpenSearch এর মূল কাজ:
Fast Search
Full Text Search
Log Analysis
Real-time Analytics
****************************************************************************
OpenSearch হলো একধরনের Search Engine + Analytics System, কিন্তু “search engine কীভাবে data store করে?”
1️⃣ OpenSearch-এ Data Storage Concept
OpenSearch traditional database না, তবে data store করে এক ধরনের Index structure এ।
Structure:
Cluster → Node → Index → Shard → Document → Field
Cluster → অনেক Node একসাথে, বড় system
Node → একটি সার্ভার instance
Index → database table এর মতো, data organized হয়
Shard → Index partitioned, distributed storage
Document → database row এর মতো, JSON format
Field → Document এর property, database column এর মতো
2️⃣ OpenSearch কিভাবে Data Store করে
Step 1: Index তৈরি করা
PUT product_index
{
"mappings": {
"properties": {
"name": { "type": "text" },
"brand": { "type": "keyword" },
"price": { "type": "float" },
"release_date": { "type": "date" }
}
}
}
এখানে আমরা বলছি
product_indexনামের একটা index তৈরি হবেপ্রতিটি field এর type define করা হচ্ছে → search + analytics জন্য
Step 2: Document Insert করা
POST product_index/_doc
{
"name": "iPhone 15",
"brand": "Apple",
"price": 1200,
"release_date": "2023-09-01"
}
OpenSearch এই JSON document কে index করে inverted index তৈরি করে
এখন search query এই document কে milliseconds এর মধ্যে access করতে পারবে
3️⃣ Data কে Fast Search ও Analytics এর জন্য Prepare করা
OpenSearch শুধু store করে না, এটি search এবং analytics optimize করে।
Internally যা হয়:
Text Analysis → Document text tokenize হয়, stop words remove হয়
Example:"Learn Python Programming"→learn, python, programmingInverted Index Creation → Token → Document mapping
Example:python → Doc1, Doc2 programming → Doc1, Doc3Shard + Replica → Large dataset distribute করা হয় + backup থাকে
Query Execution → User search করলে direct inverted index lookup, milliseconds response
4️⃣ Example: Search + Analytics
Stored Data (Documents):
Doc1: {"name": "iPhone 15", "brand": "Apple", "price": 1200}
Doc2: {"name": "iPhone 14", "brand": "Apple", "price": 1000}
Doc3: {"name": "Samsung Galaxy S24", "brand": "Samsung", "price": 1100}
Search Query:
GET product_index/_search
{
"query": {
"match": { "name": "iphone" }
}
}
Result:
[
{"name": "iPhone 15", "price": 1200},
{"name": "iPhone 14", "price": 1000}
]
Analytics Query (Average Price):
GET product_index/_search
{
"size": 0,
"aggs": {
"avg_price": { "avg": { "field": "price" } }
}
}
Result:
{
"avg_price": 1100
}
একে বলে search + analytics একসাথে করা possible
5️⃣ Summary (Easy)
OpenSearch data store করে Index → Document → Field structure এ
Data internally analyzed + inverted index + shard/replica হয়ে থাকে
তাই খুব দ্রুত search এবং analytics করা যায়
Traditional database নয়, তবে database এর মতো structured + unstructured data handle করতে পারে .
Summary
Primary Shard → মূল data
Replica Shard → real-time backup for fault tolerance
Node fail হলে replica serve করে → downtime 0
Periodic snapshot → extra backup
💡 Mentor Tip:
Replica = real-time backup (high availability)
Snapshot = periodic backup (disaster recovery)
*********************************************************************************
OpenSearch হলো একটি distributed system, কিন্তু technicalভাবে এটা distributed search engine + analytics system, যা database এর কিছু characteristicও রাখে।
1️⃣ Distributed Database কি?
Distributed Database হলো এমন একটি database যেখানে data একাধিক server/node এ spread করা থাকে, এবং user বা application সহজে single logical view হিসেবে access করতে পারে।
Key points:
Data multiple servers (nodes) এ থাকে → Scalability
Fail-safe → এক node crash হলে অন্য node থেকে data আসে
Data partitioned → Shard এর মাধ্যমে distribute করা হয়
Replica → Backup copy
2️⃣ OpenSearch কিভাবে Distributed হয়
OpenSearch cluster structure:
Cluster → Node → Index → Shard → Document
Cluster → অনেক Node একসাথে
Node → একটি সার্ভার instance
Index → Table এর মতো
Shard → Index partitioned
Replica → Backup Shard
Example: 3 Node Cluster
| Shard | Primary Node | Replica Node |
|---|---|---|
| Shard1 | Node1 | Node2 |
| Shard2 | Node2 | Node3 |
| Shard3 | Node3 | Node1 |
Scenario: Node2 crash → Shard2 & Shard5 Replica Node3 থেকে serve হবে।
Result: Data loss নেই, search & analytics কাজ করছে uninterrupted।
3️⃣ Distributed Database Features in OpenSearch
| Feature | OpenSearch | Traditional DB |
|---|---|---|
| Scalability | Horizontal → Node add করে easily scale | Vertical → More CPU/RAM |
| Fault-tolerance | Replica shards → Auto failover | Often needs manual backup/replication |
| Partitioning | Shards → Data split | Table partition (manual) |
| Query | Distributed query → Aggregation, search | SQL query |
4️⃣ Key Takeaway
OpenSearch distributed nature-এর জন্য big data, search, analytics খুব সহজে handle করে।
এটা traditional database না হলেও অনেক database features আছে (structured data, queries, filtering, aggregations)।
তাই বলা যায়: OpenSearch = distributed search engine + analytics system + partial database features
