# FieldText

Allows you to specify fields that result documents must contain, and the conditions that these fields must meet for the documents to return as results.

Actions: | Query
Type: | String
Default: |
Example: |
    FieldText=MATCH{Archive,Web,docs}:DIR:DIRECTORY
A document's `DIR` or `DIRECTORY` field must have the value `Archive`, `Web` or `docs` for this document to return as a result.
    FieldText=EQUAL{1234567890123}:ACCOUNT:KONTO
A document's `ACCOUNT` or `KONTO` field must contain the number `1234567890123` for this document to return.
    FieldText=GREATER{6.95}:PRICE:PREIS AND MATCH{Thomas Brown}:AUTHOR:AUTOR
The `PRICE` or `PREIS` field in a document must contain a number greater than `6.95`, and the `AUTHOR` or `AUTOR` field have the value `Thomas Brown` for this document to return as a result
    FieldText=(LESS{10}:PRICE+AND+MATCH{Penguin}:PUBLISHER)+OR+(NRANGE{20,30}:PRICE+AND+MATCH{George Orwell}:AUTHOR)
This example contains 4 field specifier expressions:
    LESS{10}
    MATCH{Penguin}
    NRANGE{20,30}
    MATCH{George Orwell}
See Also: |

To specify how documents must match fields and field values to return as results, the `FieldText` parameter uses field specifiers that describe the pattern of values in fields. These field specifiers fall into the groups described in the following sections.

## Field Specifiers for Common Restrictions

To find documents in which a specified field contains | Use the field specifier:
--- | ---
a value that exactly matches one or more specified strings | MATCH
a number To optimize the processing time of queries for fields that contain numbers, store them as numeric fields in IDOL Server during the indexing process. | EQUAL GREATER LESS NRANGE NOTEQUAL
a date To optimize the processing time of queries for fields that contain dates, store them as numeric date fields in IDOL Server during the indexing process. | GTNOW LTNOW RANGE
a value that matches a specified Wildcard string | WILD

## Field Specifiers for Advanced Restrictions

To find documents in which a specified field | Use the field specifier:
--- | ---
contains a value that falls within a specific alphabetical range | ARANGE
contains a value that results in a non-zero value when a bitwise AND operation is carried out against it | BITAND BITANDHEX BITANDOFFHEX
contains a value in a `BitFieldType` field where the specified bit is set | BITSET
contains a Boolean agent | BOOLEANFIELD
contains Cartesian (x/y) coordinates values within a specified distance from a specified point | DISTCARTESIAN
contains latitude and longitude values within a specified distance from a specified point | DISTSPHERICAL
does not exist or does not contain a value | EMPTY
exists, irrespective of its value | EXISTS
contains a value that is similar to a specified string | FUZZY
contains a value whose length is a specific number of characters | LENGTH
contains multiple instances, whose values include at least one match for each of the specified strings or numeric values | MATCHALL EQUALALL
contains multiple instances, all of whose values match in the specified strings or numeric values | MATCHCOVER EQUALCOVER
contains a specified reference in a `ReferenceMemoryMappedType` field recursively to a maximum number of times | MATCHRECURSE
contains multiple instances, at least one of whose values does not match the specified string | NOTMATCH NOTSTRING NOTWILD
contains Cartesian (x/y) coordinate values within a specified polygonal shape | POLYGON
contains a specified string | STRING STRINGALL SUBSTRING
contains a value that matches specific terms or phrases | TERM TERMALL TERMEXACT TERMEXACTALL TERMEXACTPHRASE TERMPHRASE

## Field Specifiers for Biasing Result Scores

To bias the score of results according to the numerical proximity of the specified field to a specified value: | BIAS
To boost the score of any document in which the specified field has a specified date: | BIASDATE
To boost the score of any document according to its distance from a point, specified by using Cartesian coordinates (x/y): | BIASDISTCARTESIAN
To boost the score of any document according to its distance from a point, specified by using spherical coordinates (latitude and longitude): | BIASDISTSPHERICAL
To boost the score of any document in which the specified field has a specified value: | BIASVAL

## Field Specifiers for Linking Queries

To link the query results with a particular value in the specified `ReferenceMemoryMappedType` field to documents where this value occurs as a document reference: | LINK

## Notes:

- In addition to document fields, you can also apply `FieldText` restrictions to metadata fields, such as `autn_date`, `autn_database`, `autn_section`, `autn_langtype`, and `autn_language`. Refer to the IDOL Server Administration Guide for details on metadata fields.

  For example:

      FieldText=STRING{Archiv}:autn_database

  In this example, the `autn_database` metadata field must contain the substring `Archiv` for the document to return. For example, if the `autn_database` metadata field has the value `Archive` or `Archives`, this document returns.

      FieldText=WILD{eng*}:autn_langtype

  In this example, the `autn_langtype` metadata field must contain a value that starts with `eng` (for example, `englishASCII` or `English_UTF8`) for the document to return as a result.

- You can use the `autn_termsperdoc` and `autn_distincttermsperdoc` metadata fields to return documents that have a specific `termsperdoc logn` value. You can use this to investigate the results of a `TermGetAll` action with `TermAnalysis` set to `True`. For example:

      FieldText=EQUAL{2}:autn_termsperdoc

  In this example, documents return only if they contain between 3 and 4 (22) terms.

- You can use multiple field specifiers simultaneously by combining them with the Boolean operators `AND`, `NOT`, and `OR`.

  For example:

      FieldText=GREATER{6.95}:PRICE:PREIS+AND+MATCH{Brown}:AUTHOR:AUTOR

  In this example, the `PRICE` or `PREIS` field must contain a number greater than `6.95`, and the `AUTHOR` or `AUTOR` field must have the value `Brown`, for the document to return as a result.

      FieldText=(LESS{10}:PRICE+AND+MATCH{Penguin}:PUBLISHER)+OR+(NRANGE{20,30}:PRICE+AND+MATCH{George Orwell}:AUTHOR)

  In this example, documents return only if they meet one of the following criteria:

  - the `PRICE` field contains a number smaller than `10`, and its `PUBLISHER` field has the value `Penguin`.

  - the `PRICE` field contains a number between 20 and 30, and its `AUTHOR` field has the value `George Orwell`.

- You can use the Boolean proximity operators `BEFORE` and `AFTER` to specify the order in which certain fields occur in a document.

  For example:

      FieldText=MATCH{Penguin}:PUBLISHER BEFORE MATCH{George Orwell}:AUTHOR

  In this example, documents return only when the `PUBLISHER` field contains the value `Penguin` earlier in the document than an instance of the `AUTHOR` field that contains the value `George Orwell`.

  NOTE: For a `FieldText` query to successfully compare two occurrences of the same field, you must set the `XMLFullStructure` configuration parameter to `True` in your IDOL Server configuration file.

      FieldText=MATCH{George Orwell}:AUTHOR AFTER MATCH{Thomas Brown}:AUTHOR

  In this example, documents return only when one occurrence of the `AUTHOR` field contains the value `George Orwell` later in the document than another occurrence of the `AUTHOR` field that contains the value `Thomas Brown`. This query returns results only when `XMLFullStructure` is set to `True` in the `[Server]` section of the IDOL Server configuration file.

- If `XMLFullStructure` is set to `True` in the `[Server]` section of the IDOL Server configuration file, you can use the `WHEN` operator to return only XML documents in which two fields that have the same parent field contain specified terms or phrases.

  For example:

      action=Query&FieldText=MATCH{audi}:make+WHEN+MATCH{red}:color

  This query returns only XML documents in which the `make` and `color` fields are direct children of the same parent field, and contain the values `audi` (in the `make` field) and `red` (in the `color` field).

- When identifying fields, use the format:

  - `/FieldName` to match root-level fields.

  - `FieldName` to match all fields except root-level.

  - `/Path/FieldName` to match fields that the specified path points to.

  To identify XML attributes, use the format `TagName/_ATTR_AttributeName`, for example, `FARM/_ATTR_ANIMAL`.

  You can also use Wildcards when identifying fields, for example, `/Fi*d1`, `/Field*` and so on.

- All string matching is case insensitive, unless you set `CaseSensitive` to `True` (this parameter does not apply for TERM, TERMALL, and TERMPHRASE, which are always case insensitive).

- You must percent-encode all strings in `FieldText`.

  - You must distinguish punctuation in IDOL query syntax, such as commas and curly braces, from the same punctuation that might occur in the query strings. Use the following percent-encoding guidelines:

  - Percent-encode an ampersand (`&`) as `%26`.

  - Percent-encode a backslash (`\`) as `%5C`.

  - Percent-encode a percentage sign (`%`) as `%25`.

  - To distinguish curly braces in strings from query syntax, percent-encode left (`{`) and right (`}`) braces twice, as `%257B` and `%257D`.

  - To distinguish commas in strings from separator commas, percent-encode commas twice in strings (`%252C`).

  - Do not encode commas that separate multiple items, or curly braces that start and end lists.

  For example, to match the two strings `hello,world` and `goodbye,again`:

      FieldText=MATCH{hello%252Cworld,goodbye%252Cagain}:FIELD

_FT_HTML5_bannerTitle.htm