MySQL डॉक्स से
-
+
एक प्रमुख प्लस चिह्न इंगित करता है कि यह शब्द वापस आने वाली प्रत्येक पंक्ति में मौजूद होना चाहिए। -
*
तारक काट (या वाइल्डकार्ड) ऑपरेटर के रूप में कार्य करता है। अन्य ऑपरेटरों के विपरीत, इसे प्रभावित होने वाले शब्द के साथ जोड़ा जाना चाहिए। शब्द मेल खाते हैं यदि वे *ऑपरेटर से पहले के शब्द से शुरू होते हैं।यदि कोई शब्द ट्रंकेशन ऑपरेटर के साथ निर्दिष्ट किया गया है, तो इसे बूलियन क्वेरी से नहीं हटाया जाता है, भले ही यह बहुत छोटा हो (जैसा कि ft_min_word_len सेटिंग से निर्धारित होता है) या स्टॉपवर्ड। ऐसा इसलिए होता है क्योंकि शब्द को बहुत छोटा या स्टॉपवर्ड के रूप में नहीं देखा जाता है, लेकिन एक उपसर्ग के रूप में जो दस्तावेज़ में उपसर्ग से शुरू होने वाले शब्द के रूप में मौजूद होना चाहिए .
संदर्भ में:
मिलान(...) के खिलाफ(...)
MATCH (name) AGAINST ('+ski*' IN BOOLEAN MODE)
इसका मतलब है कि आप उन पंक्तियों की खोज कर रहे हैं जहां name
. में कोई शब्द है कॉलम होना चाहिए ski
, और शुरू होना चाहिए ski
. शब्द के साथ ।
आपके द्वारा पोस्ट किए गए सेट से, Dartmouth Skiway
केवल name
है जो इन आवश्यकताओं के अनुरूप है:इसमें ski
. शब्द शामिल है , और इसके पहले ski
. शब्द लगा है .
अन्य name
कॉलम, हालांकि वे पहले नियम से मेल खाते हैं:इसमें ski
होना चाहिए , वे उपसर्ग . नहीं हैं ski
, जैसा कि आपके नियम में निर्धारित है। आपकी बूलियन खोज द्वारा लौटाई गई पंक्ति केवल एक name
. के साथ है कॉलम जिसमें एक शब्द है जिसमें दोनों शामिल हैं ski
और एक शब्द है उपसर्ग ski
. द्वारा ।
जैसा कि अजरियल ने सुझाव दिया है, ft_min_len_word_setting
. को कम करने का प्रयास करें my.cnf
. में . डिफ़ॉल्ट सेटिंग के कारण आपकी खोज अपेक्षित परिणामों के साथ आने में विफल हो सकती है। इसे 3 तक कम करने का प्रयास करें।
जहां कॉलम% टेक्स्ट% पसंद है
WHERE name LIKE "%ski%"
name
. के साथ पंक्तियों की खोज करता है कॉलम जिसमें ski
. है , कोई फर्क नहीं पड़ता कि शब्द कहाँ होता है।