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

Powered by Blogger.