PMB: Les expressions booléennes [$msg[197]]
Recherche simple

Par défaut, le moteur cherche les éléments qui contiennent au moins (!!operator_uppercase!! implicite) un des mots saisis. Le tri se fait selon le nombre décroissant de mots trouvés, puis par ordre alphabétique.
Ex. jambon bayonne signifie les éléments qui contiennent les mots jambon !!operator_lowercase!! Bayonne (jambon de Bayonne, jambon de Parme, l'histoire de Bayonne, ...).
Les accents ne sont pas pris en compte ainsi que les majuscules/minuscules. Si deux mots sont séparés par un autre signe que espace, +, ou -, les deux mots sont considérés comme devant apparaître dans le résultat
Ex. Saint Jean/mer sera analysé comme : chercher les éléments qui contiennent saint ou les éléments qui contiennent jean et mer ou les deux.
Certains mots sont ignorés car trop courants ou sans signification pertinente en français (ex : de, du, da, t, l, d, s, son, sa, ...).

Cas du tiret

Le tiret est considéré comme un opérateur entre deux mots (voir plus bas le chapitre : Opérateurs logiques entre deux mots). Ainsi, tout mot composé avec un tiret doit être entouré de guillemets pour faire une recherche en terme exact (voir plus bas le chapitre Recherche avec des termes exacts).

Troncature

Les mots peuvent être tronqués à gauche, droite ou partiellement par le caractère *
Ex. chev* cherchera les mots commençant par chev (cheval, chevaux, cheveux, ...), *logie cherchera les mots finissant par 'logie' (psychologie, théologie, trilogie, ...), p*logie cherchera les mots commençant par p et finissant par logie (psychologie, paléonthologie, pathologie, ...).
Plusieurs troncatures peuvent être utilisées dans un même mot.

Recherche avec des termes exacts

Un terme exact est défini par un texte entouré de guillemets. Si le moteur de recherche rencontre un terme exact, il cherche les éléments contenant exactement ce texte. La troncature peut être utilisée dans les termes exacts.
Ex. \"dent\" signifie tous les éléments contenant le texte dent (dentition, accident, indentation, ...).
La recherche exacte est pratique pour la recherche d'expressions contenant des espaces ou des signes de ponctuation. (un sigle par exemple).
Ex. \"A.N.P.E.\" cherche les éléments qui contiennent le texte A.N.P.E., A.N.P.E. cherche les éléments qui contiennent les mots A ou N ou P ou E .
Les accents et les majuscules/minuscules ne sont pas pris en compte dans un terme exact. Enfin, les termes exacts peuvent être utilisés dans toutes les expressions complexes décrites ci-dessous.

Négation

Le symbole ~ devant un terme représente une négation de ce terme. Cela signifie la recherche de tous les éléments ne contenant pas ce terme
Ex. ~travail signifie tous les éléments sauf ceux qui contiennent le mot travail.

Opérateurs logiques entre deux mots

Des opérateurs logiques peuvent être utilisés entre les mots :

Plusieurs opérateurs peuvent être enchaînés dans une même expression. Ils sont appliqués dans l'ordre, de gauche à droite.
Ex. poésie + français* - romantique* signifie les éléments contenant poésie !!operator_more_lowercase!! français(e)(s) sans romantique(s).

Attention, deux opérateurs ne peuvent se suivre, une négation ne peut être combinée à un opérateur (+~ revient au même que l'opérateur -).

Regroupements

Une expression peut être regroupée pour devenir un terme. Ce regroupement se fait avec les parenthèses. Cela permet de changer l'ordre d'application des opérateurs ou de combiner les résultats d'expressions complexes.
Ex.

Les parenthèses peuvent être imbriquées sans limite.
Ex. (poésie + (française romantique)) (littérature + XIX) signifie dans tous les éléments qui contiennent française !!operator_lowercase!! romantique, uniquement ceux qui contiennent poésie !!operator_lowercase!! les éléments qui contiennent littérature !!operator_more_lowercase!! XIX

Pertinence

Les résultats sont triés par ordre de pertinence puis par ordre alphabétique. La pertinence est calculée simplement par le nombre total de mots ou de termes exacts trouvés.
Ex.

"; $operator = ($pmb_default_operator ? $msg['search_and'] : $msg['search_or']); $operator_more = ($pmb_default_operator ? $msg['search_or'] : $msg['search_and']); $content = str_replace('!!operator_uppercase!!', strtoupper($operator), $content); $content = str_replace('!!operator_lowercase!!', strtolower($operator), $content); $content = str_replace('!!operator_more_uppercase!!', strtoupper($operator_more), $content); $content = str_replace('!!operator_more_lowercase!!', strtolower($operator_more), $content); print $content; ?>