Mysql
 sql >> база данни >  >> RDS >> Mysql

Escape низ за използване в 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. jQuery Autocomplete (Remote) - пример

  2. Индексът (на база нула) трябва да е по-голям или равен на нула

  3. премахване на информация от таблицата на mysql, когато потребителят затвори своя браузър

  4. MySQL заявка - Записи между днес и последните 30 дни

  5. Как да използвате JDBC за свързване на MySql база данни