Basic Usage

A field that is indexed as fast is stored in a column-oriented fashion. Fast fields are necessary for aggregations. They can also improve the query times of filtering and sorting.

By default, numeric, datetime, and boolean are indexed as fast. The following code block demonstrates how to specify a fast field.

CREATE INDEX search_idx ON mock_items
USING bm25 (id, rating)
WITH (
    key_field = 'id',
    text_fields ='{
        "description": {"fast": true}
    }'
);

Normalizers

The normalizer controls how text fast fields are stored. By default, the raw normalizer is used. The raw normalizer is useful for accelerating queries that sort by the text field.

CREATE INDEX search_idx ON mock_items
USING bm25 (id, category)
WITH (
    key_field='id',
    text_fields='{
        "category": {"fast": true, "normalizer": "raw"}
    }'
);

Setting the normalizer to lowercase is useful for queries that sort by the lowercase text field.