> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Contraintes de recherche

> Définissez des contraintes de recherche dans la section relations avancées de pré-recherche à l’aide de RestrictSearchArea, des fonctions de demi-plan, des limites de bordure et des exclusions.

Les contraintes de la zone de recherche sont définies dans les onglets **Contraintes de recherche** et **Relations** de la boîte de dialogue **Propriétés**, ainsi que dans la section **Relations avancées de pré-recherche**.

Avant l’application de toute contrainte, la zone de recherche coïncide avec le rectangle de la page. FlexiLayout Studio applique d’abord les contraintes définies dans les onglets **Contraintes de recherche** et **Relations**, puis applique les contraintes supplémentaires définies dans la section **Relations avancées de pré-recherche**.

<div id="advanced-pre-search-relations-constraint-types">
  ## Types de contraintes des relations avancées de pré-recherche
</div>

Vous pouvez définir les types de contraintes suivants :

* **Rectangle, région ou tableau de rectangles** – Limite la zone de recherche à un rectangle (variable `Rect`), à une région (c’est-à-dire un tableau continu de rectangles, variable `Region`) ou à un tableau de rectangles qui, dans le cas général, n’est pas nécessairement continu (variable `RectArray`). Définissez cette contrainte à l’aide de la fonction `RestrictSearchArea` et d’un paramètre du type correspondant. Toute expression qui renvoie une valeur du type requis peut être utilisée comme paramètre.
* **Demi-plan** – Limite la zone de recherche à un demi-plan situé à gauche, à droite, au-dessus ou en dessous d’un point donné. Définissez ces contraintes à l’aide des fonctions `Leftof`, `Rightof`, `Above` et `Below`.
* **Element boundary** – Contraint une limite donnée d’un élément, ce qui réduit la plage des hypothèses possibles lors du calcul de la zone de recherche. Définissez ces contraintes à l’aide des fonctions `LeftBound`, `RightBound`, `topBound` et `BottomBound`, ainsi que des opérateurs `>` et `<`.
* **Exclusion** – Exclut de la zone de recherche un rectangle, un tableau de rectangles, une hypothèse, etc. Définissez ces contraintes à l’aide des fonctions `Exclude`, `ExcludeRect` et `ExcludeSet`.

Pour les contraintes de type Element boundary, vous pouvez savoir à l’avance que la limite gauche d’un élément se situe toujours dans la partie gauche de l’image, tandis que la limite droite peut s’étendre indéfiniment vers la droite. Les fonctions `LeftBound` et `RightBound` accèdent aux limites gauche et droite de la zone de recherche, et les fonctions `topBound` et `BottomBound` accèdent respectivement aux limites supérieure et inférieure.

<div id="how-multiple-constraints-combine">
  ## Comment plusieurs contraintes se combinent
</div>

Vous pouvez spécifier autant de contraintes que nécessaire dans la section **relations avancées de pré-recherche**. Chaque contrainte crée une région sur l’image, et l’intersection de toutes les régions créées par ces contraintes est prise en compte.

De plus, la zone de recherche calculée pour l’élément est mise en intersection avec la zone de recherche de l’élément **Group** qui contient cet élément.
