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

# Interface: SearchFilterBuilder<Document, SearchIndexConfig>

> Builder for defining search filters.

[server](/api/modules/server).SearchFilterBuilder

Builder for defining search filters.

A search filter is a chained list of:

1. One search expression constructed with `.search`.
2. Zero or more equality expressions constructed with `.eq`.

The search expression must search for text in the index's `searchField`. The
filter expressions can use any of the `filterFields` defined in the index.

For all other filtering use [filter](/api/interfaces/server.OrderedQuery#filter).

To learn about full text search, see [Indexes](/search/text-search).

## Type parameters

| Name | Type |
| :- | :- |
| `Document` | extends [`GenericDocument`](/api/modules/server#genericdocument) |
| `SearchIndexConfig` | extends [`GenericSearchIndexConfig`](/api/modules/server#genericsearchindexconfig) |

## Methods

### search

▸ **search**(`fieldName`, `query`): [`SearchFilterFinalizer`](/api/interfaces/server.SearchFilterFinalizer)\<`Document`, `SearchIndexConfig`>

Search for the terms in `query` within `doc[fieldName]`.

This will do a full text search that returns results where any word of of
`query` appears in the field.

Documents will be returned based on their relevance to the query. This
takes into account:

* How many words in the query appear in the text?
* How many times do they appear?
* How long is the text field?

#### Parameters

| Name | Type | Description |
| :- | :- | :- |
| `fieldName` | `SearchIndexConfig`\[`"searchField"`] | The name of the field to search in. This must be listed as the index's `searchField`. |
| `query` | `string` | The query text to search for. |

#### Returns

[`SearchFilterFinalizer`](/api/interfaces/server.SearchFilterFinalizer)\<`Document`, `SearchIndexConfig`>
