> ## 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.

# 検索制約

> 要素プロパティと検索条件を使用して検索領域がどのように形成されるかを説明します。

要素の検索領域は、**Where to search** セクションで設定した要素プロパティと、**Search Conditions** セクションで設定した条件によって形成されます。プロパティと条件を適用する前は、検索領域はページの矩形と一致しています。最初に、プログラムは領域に要素プロパティを適用し、続いて **Search Conditions** セクションで設定した追加の制約を適用します。

**Search Conditions** セクションでは、次の種類の制約を設定できます。

1. 検索領域を矩形 (`Rect` 変数) 、リージョン (すなわち連続する矩形の配列 — `Region` 変数) 、または一般には連続である必要のない矩形の配列 (`RectArray` 変数) に限定できます。この種の制約は `RestrictSearchArea` 関数を使い、対応する型のパラメータを指定して設定します。必要な型の値を返す任意の式をパラメータとして指定できます。
2. 検索領域を、特定の点の左側、右側、上側、または下側に位置する半平面に限定できます。このような制約は Leftof、Rightof、Above、Below 関数で設定します。
3. 要素の境界に対して制約を設定したい場合があります。たとえば、要素の左境界が常に画像の左側にあり、右境界は右方向に無限に延びうると事前に分かっている場合です。FlexiLayout 言語では、検索領域の計算段階でこのような制約を設定でき、要素に関する仮説の範囲を狭められます。このような制約は、`LeftBound`、`RightBound`、`topBound`、`BottomBound` 関数と演算子 `>`、`<` を用いて設定します。`LeftBound` と `RightBound` は検索領域の左境界・右境界へ、`topBound` と `BottomBound` はそれぞれ上境界・下境界へアクセスするために使用します。
4. 矩形、矩形の配列、仮説などを検索領域から除外することで検索制約を設定できます。これは `Exclude`、`ExcludeRect`、`ExcludeSet` 関数で実行できます。

**Search Conditions** セクションでは、上記の検索制約を任意の数だけ指定できます。各制約は画像上にリージョンを作成し、作成されたすべてのリージョンは交差 (積集合) されます。

さらに、当該要素の計算済み検索領域は、その要素が属する Group 要素の検索領域とも交差されます。
