MySQL का Full-Text Search फीचर MATCH() ... AGAINST() का उपयोग करके टेक्स्ट कॉलम में कुशलता से खोज करने की अनुमति देता है। यह `LIKE '%term%'` से बहुत तेज़ है।
टेबल बनाएं और फुलटेक्स्ट इंडेक्स जोड़ें
mysql> CREATE TABLE DemoTable1833 (
Name VARCHAR(20)
);
mysql> ALTER TABLE DemoTable1833 ADD FULLTEXT(Name);
डेटा डालें
mysql> INSERT INTO DemoTable1833 VALUES('John Doe');
mysql> INSERT INTO DemoTable1833 VALUES('Adam Smith');
mysql> INSERT INTO DemoTable1833 VALUES('Chris Brown');
mysql> INSERT INTO DemoTable1833 VALUES('John Smith');
बूलियन मोड में खोजें
+ ऑपरेटर का उपयोग करके अनिवार्य शब्द खोजें:
mysql> SELECT * FROM DemoTable1833
WHERE MATCH(Name) AGAINST('+John +Smith' IN BOOLEAN MODE);
आउटपुट:
+------------+ | Name | +------------+ | John Smith | | John Doe | | Adam Smith | +------------+
व्याख्या
+John +Smithका अर्थ है दोनों शब्द होने चाहिए (AND लॉजिक)।John Smithदोनों से मेल खाता है।John Doeमें "John" है।Adam Smithमें "Smith" है।Chris Brownकिसी से मेल नहीं खाता, इसलिए बाहर है।
महत्वपूर्ण बिंदु
- कॉलम पर
FULLTEXTइंडेक्स होना आवश्यक है। - MyISAM और InnoDB दोनों फुलटेक्स्ट सपोर्ट करते हैं (InnoDB 5.6+ से)।
- बूलियन मोड में
+,-,*(वाइल्डकार्ड) ऑपरेटर उपयोग कर सकते हैं। - न्यूनतम शब्द लंबाई डिफ़ॉल्ट 3-4 अक्षर होती है (कॉन्फ़िगर करने योग्य)।