Full Text Search
1️⃣ Full-Text Search কি?
Full-Text Search হলো এমন একটি search technique যেখানে একটি text document এর পুরো content বিশ্লেষণ করে relevant result বের করা হয়।
এটা শুধু exact match করে না। বরং:
similar word match করে
plural / singular match করে
word order ignore করতে পারে
typo tolerate করতে পারে
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 বুঝবে:
iphone
phone
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
কারণ:
iphone → match
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
কারণ:
Doc1 → 1 word match
Doc2 → 2 word match
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