Header Ads

Header ADS

Full Text Search

 


1️⃣ Full-Text Search কি?

Full-Text Search হলো এমন একটি search technique যেখানে একটি text document এর পুরো content বিশ্লেষণ করে relevant result বের করা হয়।

এটা শুধু exact match করে না। বরং:

  1. similar word match করে

  2. plural / singular match করে

  3. word order ignore করতে পারে

  4. typo tolerate করতে পারে

  5. relevance অনুযায়ী ranking দেয়


2️⃣ Simple Database Search vs Full-Text Search

ধরো তোমার একটি product table আছে।

Database Search (LIKE query)

SELECT * FROM products
WHERE name LIKE '%iphone%'

এই query শুধু exact text match করে।


Full-Text Search

Full-text search keyword analyse করে।

User search করলো:

iphone phone

Search engine বুঝবে:

  1. iphone

  2. phone

  3. related words

তারপর best match result দিবে।


3️⃣ Real Example (Product Search)

ধরো তোমার data:

1. Apple iPhone 15 Pro Max
2. Apple iPhone 14
3. Samsung Galaxy S24
4. Samsung Phone Case

User search করলো:

iphone phone

Full-text search result:

1. Apple iPhone 15 Pro Max
2. Apple iPhone 14
3. Samsung Phone Case

কারণ:

  1. iphone → match

  2. phone → match


4️⃣ Full-Text Search Internally কিভাবে কাজ করে

Search engine সাধারণত 5টি ধাপে কাজ করে।


Step 1: Document Indexing

প্রথমে data index করা হয়।

Example document:

{
 "title": "Learn Python Programming"
}

এটা store করা হয় OpenSearch-এ।


Step 2: Text Analysis

Search engine text কে ছোট ছোট অংশে ভেঙে ফেলে।

Example:

Learn Python Programming

Tokenization হবে:

learn
python
programming

Step 3: Stop Words Remove

কিছু common word remove করা হয়।

Example sentence:

Learn Python Programming for Beginners

Stop words:

for
the
a
an

Remaining tokens:

learn
python
programming
beginners

Step 4: Inverted Index তৈরি

এটা search engine এর সবচেয়ে গুরুত্বপূর্ণ data structure

Example documents:

Doc1: Learn Python Programming
Doc2: Python Tutorial for Beginners
Doc3: Advanced Java Programming

Inverted index হবে:

learn → Doc1
python → Doc1, Doc2
programming → Doc1, Doc3
tutorial → Doc2
java → Doc3

এভাবে word → document mapping করা হয়।

এই কারণে search খুব দ্রুত হয়।


5️⃣ Search Query Execution

User search করলো:

python

Search engine inverted index দেখে:

python → Doc1, Doc2

Result:

1. Learn Python Programming
2. Python Tutorial for Beginners

6️⃣ Ranking (Relevance Score)

সব result একরকম important না।

Search engine score calculate করে।

Example documents:

Doc1: Python Tutorial
Doc2: Advanced Python Programming
Doc3: Learn Programming

User search:

python programming

Ranking হতে পারে:

1. Advanced Python Programming
2. Python Tutorial
3. Learn Programming

কারণ:

  1. Doc1 → 1 word match

  2. Doc2 → 2 word match

  3. Doc3 → 1 word match


7️⃣ Typo Tolerance

User লিখলো:

pythn

Search engine বুঝতে পারে:

python

এটা করা হয় fuzzy matching দিয়ে।

Example result:

Python tutorial
Learn python programming

8️⃣ Real World Example

ধরো তুমি YouTube এ search করো:

react tutorial

Videos:

React JS Tutorial
React Crash Course
Learn React for Beginners

YouTube full-text search দিয়ে result দেয়।


আরেকটা example:

Amazon product search।

User search করলো:

iphone charger

Result:

iPhone Fast Charger
Apple Charger for iPhone
USB Charger for iPhone

9️⃣ OpenSearch কেন এত দ্রুত

কারণ:

Traditional DB → scan rows
OpenSearch → inverted index lookup

Database:

1M rows scan

OpenSearch:

Direct word lookup

এই কারণে milliseconds এ result আসে।


🔑 Mentor Summary

Full-Text Search এর মূল ধারণা:

Document → Text analysis → Tokenization → Inverted index → Fast search



*********************************************************************************

1️⃣ আমাদের 5 টা document

Doc1: { "id": 1, "name": "computer" }
Doc2: { "id": 2, "name": "laptop computer" }
Doc3: { "id": 3, "name": "desktop pc" }
Doc4: { "id": 4, "name": "gaming laptop" }
Doc5: { "id": 5, "name": "computer accessories" }

2️⃣ Tokenization (Analyzer)

Analyzer প্রতিটি name field কে tokenize করে:

Doc IDTokens
1computer
2laptop, computer
3desktop, pc
4gaming, laptop
5computer, accessories

3️⃣ Inverted Index তৈরি

Token → Doc ID mapping:

TokenDoc IDs
computer             1, 2, 5
laptop2, 4
desktop3
pc3
gaming4
accessories5

💡 লক্ষ্য করো: token → doc IDs, ঠিক dictionary style


4️⃣ User Query Examples

Example 1: Search "computer"

  1. Query tokenize → "computer"

  2. Inverted index lookup → "computer" → [1, 2, 5]

  3. Result → Doc1, Doc2, Doc5


Example 2: Search "laptop"

  1. Query tokenize → "laptop"

  2. Inverted index lookup → "laptop" → [2, 4]

  3. Result → Doc2, Doc4


Example 3: Search "pc"

  1. Query tokenize → "pc"

  2. Inverted index lookup → "pc" → [3]

  3. Result → Doc3


 

*******************************************************************************

 

🔹 OpenSearch Full-Text Search Flow

  1. Document store

    • তুমি document OpenSearch এ পাঠাও (e.g., "name": "computer-pc")

  2. Tokenization (Analyzer)

    • Field type = text → analyzer চালানো হয়

    • "computer-pc""computer", "pc" tokens তৈরি হয়

  3. Inverted Index তৈরি

    • Token → Doc ID mapping তৈরি হয়

    • উদাহরণ:

computer → [doc1, doc2, doc5]
pc → [doc3]
laptop → [doc2, doc4]
  1. User Query

    • User search করে, যেমন "computer"

    • Query analyzer → "computer" token তৈরি করে

  2. Token Match in Inverted Index

    • "computer" token → inverted index lookup → [doc1, doc2, doc5]

  3. Return Result

    • Matching doc return হয়, relevance score অনুযায়ী sort করা হয়


✅ এক বাক্যে summary:

Document → tokenize → inverted index  
Query → tokenize → match tokens in index → return docs

 

 

Powered by Blogger.