Fonctions à utiliser dans les clauses SELECT et WHERE
<<<
Booléens de recherches en texte intégral Recherche en texte intégral avec extension de requête
>>>

13.6 Recherche en texte intégral ( Full-text ) dans MySQL
13 Fonctions à utiliser dans les clauses SELECT et WHERE
 Manuel de Référence MySQL 4.1 : Version Française

->Booléens de recherches en texte intégral
Recherche en texte intégral avec extension de requête
Restrictions avec la recherche en texte intégral
Paramétrage précis de la recherche en text intégral de MySQL
A faire dans la recherche Full-text

13.6.1 Booléens de recherches en texte intégral

Depuis la version 4.0.1, MySQL peut aussi effectuer des recherchez en texte intégral avec l'option IN BOOLEAN MODE .

mysql> SELECT * FROM articles WHERE MATCH (title,body)
    -> AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE);
+----+-----------------------+-------------------------------------+
| id | title                 | body                                |
+----+-----------------------+-------------------------------------+
|  1 | MySQL Tutorial        | DBMS stands for DataBase ...        |
|  2 | How To Use MySQL Well | After you went through a ...        |
|  3 | Optimizing MySQL      | In this tutorial we will show ...   |
|  4 | 1001 MySQL Tricks     | 1. Never run mysqld as root. 2. ... |
|  6 | MySQL Security        | When configured properly, MySQL ... |
+----+-----------------------+-------------------------------------+
Cette requête recherche toute les lignes qui contiennent le mot `` MySQL '', mais qui ne contient pas le mot `` YourSQL ''.Les recherches booléennes en texte intégral ont les caractéristiques suivantes :

  • Elle n'utilise pas le seuil de 50%.
  • Elles ne trie pas automatiquement les lignes par ordre de pertinence décroissante. Vous pouvez le voir dans l'exemple précédent : la ligne ayant la plus grande pertinence est celle qui contient `` MySQL '' deux fois, mais elle est listée en dernier.
  • Elles peuvent fonctionner dans l'index FULLTEXT , même si c'est particulièrement lent .

Les recherches booléenne en texte intégral supporte les opérateurs suivants :

    +
    A signe + initial indique que le mot doit être présent dans la ligne retournée.
    -
    Un signe - initial indique que le mot ne doit pas être présent dans la ligne retournée.
    (pas d'opérateur)
    Par défaut, lorsque ni + , ni - n'est spécifié), le mot est optionnel, mais les lignes qui le contiennent seront mieux cotées. Cela imite le comportement de MATCH() ... AGAINST() sans l'option IN BOOLEAN MODE .
    > <
    Ces deux opérateurs servent à changer la contribution d'un mot à la pertinence. L'opérateur > accroît la contribution, et l'opérateur < la décroît. Voir un exemple ci-dessous.
    ( )
    Les parenthèses servent à grouper des mots en sous-expressions. Les groupes de parenthèses peuvent être imbriquées.
    ~
    Un signe tilde initial marque la négation, et fait que la contribution du mot à la pertinence sera négative. Cet opérateur est pratique pour marquer les mots ambigus. Une ligne qui contient un tel mot sera classée bien plus bas, mais elle ne sera pas exclue, comme ce serait le cas avec - .
    *
    Un astérisque est l'opérateur de troncature. Contrairement aux autres opérateurs, il doit être en suffixe et non pas en préfixe.
    "
    Une phrase entre guillemets double ( '"' ) est recherchée littéralement, telle qu'elle a été saisie .
Les exemples ci-dessous illustrent quelques résultats de chaînes de recherche avec les opérateurs :
    'pomme banane'
    Recherche les lignes qui contiennent au moins un de ces mots.
    '+pomme +jus'
    Recherche les lignes qui contiennent ces deux mots.
    '+pomme macintosh'
    Recherche les lignes qui contiennent le mot `` pomme '', mais classe plus haut les lignes qui contiennent aussi `` macintosh ''.
    '+pomme -macintosh'
    Recherche les lignes qui contiennent `` pomme '' mais pas `` macintosh ''.
    '+pomme +(>tatin <strudel)'
    Recherche les lignes qui contiennent les mots `` pomme '' et `` tatin '', ou `` pomme '' et `` strudel '' (dans n'importe quel ordre), mais classe `` pomme tatin '' plus haut que `` pomme strudel ''.
    'pomm*'
    Trouve les lignes qui contiennent des mots tels que `` pomme '', `` pommes '', `` pommier '', ou `` pommeau ''.
    '"deux mots"'
    Recherche les lignes qui contiennent exactement la phrase `` deux mots '' (par exemple, les lignes qui contiennent `` deux mots d'amour '' mais pas `` le mot deux ''). Notez que les caractères '"' qui entourent la phrase délimitent la phrase. Ils ne délimitent pas la chaîne.

<< Booléens de recherches en texte intégral >>
Fonctions à utiliser dans les clauses SELECT et WHERE Recherche en texte intégral ( Full-text ) dans MySQL Recherche en texte intégral avec extension de requête