Structure de base d’une requête
L’élément
<Contain> peut inclure un nombre quelconque des éléments suivants, dans n’importe quel ordre :
Chacun de ces éléments doit contenir l’un des éléments suivants :
L’élément
<Contain> doit contenir au moins un élément <Required> ou <Optional>.Attributs de l’élément Contain
<Contain>.
Attribut MinCount
MinCount. Chaque élément est soit une forme de mot, soit une chaîne de formes de mots renvoyée par la sous-requête. La valeur par défaut de l’attribut est 1. La valeur de ce paramètre ne doit pas être supérieure au nombre total d’éléments <Required> et <Optional> dans la combinaison de formes de mots.
Ce paramètre est utile lorsqu’une combinaison de formes de mots contient un ou plusieurs éléments <Optional>.
La requête suivante recherche soit le premier paramètre, soit le second :
Attribut KeepOrder
KeepOrder de type booléen. La valeur par défaut de l’attribut est false.
La requête suivante indique que l’ordre des éléments est fixe :
KeepOrder s’applique également à tous les éléments <Except>. Les mots correspondant aux éléments <Except> dans une requête ne doivent pas apparaître entre les mots qu’ils séparent dans la requête. Cependant, ils peuvent apparaître à n’importe quelle autre position en dehors des suites de mots de la requête à ordre fixe.
Par exemple, si vous modifiez la requête précédente en plaçant la forme de mot « second » dans un élément <Except> au lieu de <Required>, un document contenant la combinaison de formes de mot « first third second » correspondra à la requête (mais la forme de mot « second » ne sera pas incluse dans le résultat). Si vous supprimez ensuite l’attribut KeepOrder, un document contenant la combinaison de formes de mot « first third second » ne sera pas inclus dans le résultat, car la forme de mot « second » ne doit apparaître nulle part dans le texte du document.
Attributs MinDistance et MaxDistance
MinDistance et MaxDistance spécifient les distances minimale et maximale entre les mots d’une requête. Ces attributs n’ont pas de valeur par défaut. Si l’un des deux attributs n’est pas spécifié, aucune contrainte de distance ne s’applique.
La distance entre les mots est mesurée en nombre de mots et correspond à la différence entre les positions des deux mots concernés. La distance entre deux mots voisins est égale à 1 ; la valeur minimale de chacun de ces attributs est donc 1. MaxDistance doit être supérieur ou égal à MinDistance.
La distance entre deux suites de mots est calculée comme suit. Si les suites ne se chevauchent pas, la distance correspond à la différence entre la position du mot le plus à gauche dans la suite de droite et la position du mot le plus à droite dans la suite de gauche. Si les suites se chevauchent, la distance est considérée comme égale à 0.
Par exemple, dans l’expression « The quick brown fox jumped over the lazy dog, », la distance entre les suites « quick fox » et « lazy dog » est de 4, et la distance entre les suites « quick fox » et « brown lazy dog » est de 0.
Pour les éléments <Except>, la distance entre les mots est calculée comme suit :
- Si
KeepOrder="true", le mot ne doit pas apparaître à l’intérieur de la distance spécifiée par rapport aux mots voisins dans la suite (c’est-à-dire les mots entre lesquels il apparaît dans la requête). En même temps, la distance entre les voisins de l’élément<Except>doit être comprise dans la plage spécifiée. - Si
KeepOrder="false", le mot ne doit pas apparaître à l’intérieur de la distance spécifiée par rapport à un autre mot de la suite.
KeepOrder="true" et MaxDistance="2" :
KeepOrder="false" et MaxDistance="2" :
<Except> et que la distance maximale entre “tetraborate” et « sodium » est de deux mots.
Élément Form
<Form>. Cet élément peut contenir les éléments suivants :
<Attributes>— Élément facultatif contenant une requête sur les attributs d’une forme de mot. Pour plus d’informations, consultez Quand utiliser les scripts d’extraction.<Text>— Élément facultatif contenant le texte Unicode d’une forme de mot. Si aucun texte n’est spécifié, tout mot correspondant à la requête sur les attributs correspondra à la requête. Dans ce cas, la requête sur les attributs est obligatoire.
<Form>.
Attribut SearchType
SearchType de la balise <Form>. Cet attribut peut prendre les valeurs suivantes :
L’attribut
SearchType est facultatif et sa valeur par défaut est AllFormsSearch.
Attribut CaseSensitive
CaseSensitive de la balise <Form>. Cet attribut est facultatif et vaut false par défaut.
La requête suivante utilise les attributs SearchType et CaseSensitive de la balise <Form> :
Élément Attributes
<Attributes>. Cet élément peut contenir les éléments suivants :
L’élément
<Not> est construit de la même manière que l’élément <Attributes> et ne peut contenir qu’un seul de ces éléments.
Les éléments <Or> et <And> doivent contenir au moins deux de ces éléments.
La balise <Attribute> possède un attribut SearchType facultatif qui spécifie le type de recherche d’attribut. Cet attribut peut avoir les valeurs suivantes :
ExactSearch— Recherche l’attribut exactement sous la forme spécifiée dans la requête.PrefixSearch— Recherche tous les attributs commençant par le texte spécifié.
SearchType est défini sur ExactSearch par défaut.
Supposons que vous disposiez d’un document dans lequel vous avez déjà identifié :
- des objets NER, en appelant la fonction
ExtractNerObjects - des formes de mots à partir d’un dictionnaire utilisateur nommé
dictionary, en appelant la fonctionExtractWordsFromUserDictionary - tous les objets qui satisfont une expression régulière passée en paramètre, en appelant la fonction
ExtractRegularExpression
regExp.
Le nom de la collection peut être utilisé dans les requêtes XML exécutées sur le document indexé. La collection résultante elle-même est accessible par son nom.
date peut trouver une date au format « 31 mai 2019 ». Ainsi, date1 correspond au mot « 31 », date2 à « mai » et date3 à « 2019 ».
Élément FormSet
<FormSet>.
Ce type de requête combine plusieurs requêtes portant chacune sur une seule forme à l’aide de OR. Elle est équivalente à une requête <Query> dans laquelle toutes les sous-requêtes sont des requêtes facultatives sur des formes de mot.
Avec une requête <FormSet>, vous pouvez toutefois spécifier une requête d’attribut commune à toutes les formes. Cela permet d’effectuer des recherches plus efficaces lorsque ExactSearch est utilisé pour trouver toutes les formes de mot, qu’une requête d’attribut est définie pour chaque forme et que toutes ces requêtes d’attribut ont un fragment commun.
Un élément <FormSet> contient les éléments suivants :
<Attributes>— Élément facultatif contenant une requête sur les attributs de forme. Cette requête est combinée avec les requêtes d’attribut de forme à l’aide de AND.<Form>— Élément obligatoire contenant une requête sur une forme de mot. Un élément<FormSet>doit contenir au moins un élément<Form>.
Exemple de requête XML d’extraction d’adresse
Le résultat d’une requête d’extraction d’adresse est une chaîne de caractères contenant le premier mot du pays, le premier mot de la rue, le premier mot de la ville, le premier mot de l’État et le premier mot du code ZIP (dans cet ordre, à condition qu’ils ne soient pas espacés de plus de 5 mots). Les mots consécutifs qui composent un composant (par ex. un nom de rue) sont également numérotés dans l’indice, à partir de 1.xmlQueryResult :
