Recherche de caractères spéciaux
OmniFind prend en charge l'indexation et la recherche de caractères spéciaux.
Echappement des caractères spéciaux
Les caractères spéciaux peuvent servir différentes fonctions dans la syntaxe de requête. Par exemple, les points d'interrogation (?) peuvent être utilisés comme caractères génériques. Pour rechercher un caractère spécial associé à une fonction spéciale dans la syntaxe de requête, vous devez utiliser un caractère d'échappement pour ce caractère spécial en le faisant précéder d'une barre oblique inversée, comme dans l'exemple suivant :
- Pour rechercher la chaîne "où?", échapper le point d'interrogation comme suit: " où \?
- Pour rechercher la chaîne "c:\temp", utilisez un caractère d'échappement pour le deux-points et la barre oblique inversée comme suit : "c\:\\temp"
Si vous n'utilisez pas de caractère d'échappement avec ces caractères spéciaux, vous risquez d'obtenir des erreurs de syntaxe.
| Caractère spécial | Remarques sur le comportement obtenu sans utilisation de caractère d'échappement |
|---|---|
| Perluète (&) | |
| Astérisque (*) | Utilisé comme caractère générique. |
| Arobase (@) | Une erreur de syntaxe est générée lorsqu'une requête commence par une arobase. Dans les expressions xmlxp, l'arobase est utilisée pour désigner un attribut. |
| Crochets [ ] | Utilisés dans des expressions xmlxp pour rechercher le contenu d'éléments et d'attributs. |
| Accolades { } | Génère une erreur de syntaxe. |
| Barre oblique inversée (\) | |
| Caret (^) | Utilisé pour la pondération (boosting) des termes. |
| Deux-points (:) | Utilisé pour effectuer des recherches dans le contenu de zones. |
| Signe égal (=) | Génère une erreur de syntaxe. |
| Point d'exclamation (!) | Une erreur de syntaxe est renvoyée lorsqu'une requête commence par un point d'exclamation. |
| Barre oblique (/) | Dans les expressions xmlxp, une barre oblique est utilisée comme séparateur de chemin d'élément. |
| Symbole supérieur à (>) Symbole inférieur à (<) | Utilisés dans les expressions xmlxp pour comparer la valeur d'un attribut. Sinon, ces caractères génèrent des erreurs de syntaxe. |
| Signe moins (-) | Lorsqu'un terme débute par un signe Moins, seuls les documents qui ne contiennent pas ce terme sont renvoyés. |
| Parenthèses ( ) | Utilisées pour le regroupement. |
| Signe Pourcentage (%) | Indique qu'un terme de recherche est facultatif. |
| Signe Plus (+) | |
| Point d'interrogation (?) | Traité comme un caractère générique. |
| Point-virgule (;) | |
| Apostrophe (') | Les apostrophes sont utilisées pour contenir des expressions xmlxp. |
| Tilde (~) | Traité comme un opérateur de recherche de correspondance partielle et un opérateur de recherche de proximité |
| Barre verticale (|) |
L'utilisation de caractères d'échappement pour les caractères spéciaux qui n'ont aucune fonction spéciale dans la syntaxe de requête est facultative. Le tableau ci-après répertorie des exemples de caractères spéciaux pour lesquels l'utilisation de caractères d'échappement n'est pas requise.
| Caractère spécial | Remarques sur le comportement obtenu sans utilisation de caractère d'échappement |
|---|---|
| Virgule (,) | |
| Symbole du dollar ($) | |
| Point (.) | Dans les expressions xmlxp, un point est utiliser pour effectuer des recherches dans le contenu des éléments. |
| Signe dièse (#) | |
| Trait de soulignement (_) |
Caractères spéciaux adjacents à des termes de requête
Lorsqu'un caractère spécial est adjacent à un mot dans une requête, les documents contenant ce caractère spécial et ce mot dans le même ordre sont renvoyés. Par exemple, lors d'une recherche portant sur "30$", les documents contenant "30$" sont trouvés, mais pas les documents contenant "$30". En revanche, une recherche portant sur "30 $" (avec un espace) permet de trouver tous les documents contenant "30" et "$", quel que soit leur emplacement dans les documents contenant "30$" et "$30".
Lorsqu'un caractère spécial est adjacent à un mot d'arrêt dans une requête, ce mot d'arrêt n'est pas retiré de la requête. Par exemple, lors d'une recherche portant sur "at&t", le mot d'arrêt "at" n'est pas retiré. En revanche, lors d'une recherche portant sur "at & t" (avec des espaces), le mot d'arrêt "at" est retiré.
Lorsqu'un caractère spécial est utilisé pour séparer deux mots, la séquence de jetons est recherchée comme une séquence. Par exemple, lors d'une recherche portant sur "jack_jones", les documents contenant "jack_jones" sont trouvés, pas les documents contenant "jack_and_jones".
Les mots qui sont adjacents à des caractères spéciaux font l'objet d'une lemmatisation. Par exemple, lors d'une recherche portant sur "cats&dogs" en anglais, les documents contenant "cat&dog" sont trouvés.
Vous pouvez utiliser des caractères spéciaux dans des expressions de recherche générique. Par exemple, une recherche portant sur "ja*_" permet de trouver les documents contenant "jack_jones". En revanche, vous ne pouvez pas utiliser de caractères génériques pour rechercher des caractères spéciaux. Par exemple, une recherche portant sur "ca*s" permet de trouver les documents contenant "cats", "categories" ou "cas", mais pas les documents contenant "ca_s".
Indexation des caractères spéciaux
Lors du marquage sémantique et du traitement linguistique, le serveur OmniFind identifie et indexe les caractères spéciaux en tant que ponctuation. Les caractères spéciaux sont des délimiteurs de jeton.
Par exemple, "jack_jones" est segmenté en trois jetons distincts : "jack", "_" et "jones". Les courriers électroniques, les URL et les chemins de fichier sont divisés en jetons, par exemple :
- Jack_jones@ibm.com est segmenté comme suit : jack _ jones @ ibm . com
- http://www.ibm.com est segmenté comme suit : http :// www . ibm. com
Les caractères spéciaux n'occupent pas une position de jeton dans le fichier. Par exemple, "jack_jones" est indexé avec le trait de soulignement dans la même position de jeton que "jack". En outre, les caractères spéciaux n'occupent pas une position de jeton lorsque des espaces sont inclus. Par exemple, "jack_jones" est indexé de la même manière que "jack _ jones".
La position de jeton est utilisée pour la recherche exacte et la recherche de proximité. Par exemple, si un document contient l'expression jack_jones, il est trouvé lorsque la recherche porte sur l'expression exacte ""jack jones"".
Lorsque les caractères spéciaux d'une séquence sont indexés séparément, leur recherche s'effectue dans n'importe quel ordre. Par exemple, une recherche portant sur "#$" permet également de trouver les documents qui contiennent "$#".
Caractères spéciaux dans les langues de type CJK
Pour rechercher une séquence de caractères comportant des caractères spéciaux, ceux-ci doivent être inclus dans l'expression de requête. Si vous n'indiquez pas les caractères spéciaux dans l'expression de requête, il se peut que la séquence de caractères soit introuvable. Dans les langues qui ne sont pas de type CJK, la séquence de caractères est toujours trouvée, même si les caractères spéciaux ne sont pas inclus dans l'expression de requête. Par exemple, si un document indexé contient john_smith, si vous lancez une recherche sur john_smith ou "john smith" (correspondance exacte, sans le trait de soulignement), ces deux requêtes renvoient le document contenant john_smith.
Restriction: Vous ne pouvez pas rechercher les caractères spéciaux suivants dans les documents CJK:? * \