Header Ads

Header ADS

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

FeatureOpenSearchElasticsearch
LicenseOpen SourceMostly proprietary
OwnerCommunity + AmazonElastic company
CostFreeকিছু 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 হিসেবে ব্যবহার করে:

  1. Amazon

  2. Netflix

  3. 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
  1. Cluster → অনেক Node একসাথে, বড় system

  2. Node → একটি সার্ভার instance

  3. Index → database table এর মতো, data organized হয়

  4. Shard → Index partitioned, distributed storage

  5. Document → database row এর মতো, JSON format

  6. 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" }
   }
 }
}
  1. এখানে আমরা বলছি product_index নামের একটা index তৈরি হবে

  2. প্রতিটি 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"
}
  1. OpenSearch এই JSON document কে index করে inverted index তৈরি করে

  2. এখন search query এই document কে milliseconds এর মধ্যে access করতে পারবে


3️⃣ Data কে Fast Search ও Analytics এর জন্য Prepare করা

OpenSearch শুধু store করে না, এটি search এবং analytics optimize করে

Internally যা হয়:

  1. Text Analysis → Document text tokenize হয়, stop words remove হয়
    Example: "Learn Python Programming"learn, python, programming

  2. Inverted Index Creation → Token → Document mapping
    Example:

    python → Doc1, Doc2
    programming → Doc1, Doc3
    
  3. Shard + Replica → Large dataset distribute করা হয় + backup থাকে

  4. 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)

  1. OpenSearch data store করে Index → Document → Field structure এ

  2. Data internally analyzed + inverted index + shard/replica হয়ে থাকে

  3. তাই খুব দ্রুত search এবং analytics করা যায়

  4. Traditional database নয়, তবে database এর মতো structured + unstructured data handle করতে পারে .


Summary
  1. Primary Shard → মূল data

  2. Replica Shard → real-time backup for fault tolerance

  3. Node fail হলে replica serve করে → downtime 0

  4. 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:

  1. Data multiple servers (nodes) এ থাকে → Scalability

  2. Fail-safe → এক node crash হলে অন্য node থেকে data আসে

  3. Data partitioned → Shard এর মাধ্যমে distribute করা হয়

  4. Replica → Backup copy


2️⃣ OpenSearch কিভাবে Distributed হয়

OpenSearch cluster structure:

Cluster → Node → Index → Shard → Document
  1. Cluster → অনেক Node একসাথে

  2. Node → একটি সার্ভার instance

  3. Index → Table এর মতো

  4. Shard → Index partitioned

  5. Replica → Backup Shard


Example: 3 Node Cluster

ShardPrimary NodeReplica Node
Shard1Node1Node2
Shard2Node2Node3
Shard3Node3Node1

Scenario: Node2 crash → Shard2 & Shard5 Replica Node3 থেকে serve হবে।
Result: Data loss নেই, search & analytics কাজ করছে uninterrupted।


3️⃣ Distributed Database Features in OpenSearch

FeatureOpenSearchTraditional DB
ScalabilityHorizontal → Node add করে easily scaleVertical → More CPU/RAM
Fault-toleranceReplica shards → Auto failoverOften needs manual backup/replication
PartitioningShards → Data splitTable partition (manual)
QueryDistributed query → Aggregation, searchSQL query

4️⃣ Key Takeaway

  1. OpenSearch distributed nature-এর জন্য big data, search, analytics খুব সহজে handle করে।

  2. এটা traditional database না হলেও অনেক database features আছে (structured data, queries, filtering, aggregations)।

  3. তাই বলা যায়: OpenSearch = distributed search engine + analytics system + partial database features



 


 

 

 

 


Powered by Blogger.