Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL फुलटेक्स्ट सर्च में उपयोग के लिए एस्केप स्ट्रिंग

बूलियन सर्च मोड में केवल शब्दों और ऑपरेटरों का अर्थ होता है। ऑपरेटर हैं:+ , - , > < , ( ) , ~ , * , " , @distance . कुछ शोध के बाद मैंने पाया कि शब्द वर्ण क्या हैं:अपर केस, लोअर केस अक्षर, अंक (अंक) और _ . मुझे लगता है कि आप दो तरीकों में से एक का उपयोग कर सकते हैं:

  1. सभी गैर-शब्द वर्णों को रिक्त स्थान से बदलें (मैं इस दृष्टिकोण को पसंद करता हूं)। इसे रेगेक्स के साथ पूरा किया जा सकता है:

    $search = preg_replace('/[^\p{L}\p{N}_]+/u', ' ', $keyword);
    
  2. वर्ण-संचालकों को रिक्त स्थान से बदलें:

    $search = preg_replace('/[+\-><\(\)~*\"@]+/', ' ', $keyword);
    

केवल शब्दों को पूर्ण पाठ खोज इंजन द्वारा अनुक्रमित किया जाता है और उन्हें खोजा जा सकता है। गैर-शब्द वर्णों को अनुक्रमित नहीं किया जाता है, इसलिए उन्हें खोज स्ट्रिंग में छोड़ने का कोई मतलब नहीं है।

संदर्भ:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MONTH () उदाहरण – MySQL

  2. MySQL INSERT .... डुप्लीकेट अपडेट पर - ऑटोइनक्रिकमेंट में एक जोड़ता है

  3. PHP + HTML का उपयोग करके हाइपरलिंक में डेटाबेस मान कैसे पास करें?

  4. MySql एक स्थानीय चर को अद्यतन विवरण में कैसे सेट करें (वाक्यविन्यास?)

  5. मैं MySQL में टिप्पणियाँ कैसे जोड़ सकता हूँ?