Skip to content

Models settings

Settings Models

These are the models used when getting and updating index settings. MeilisearchSettings holds all of the settings for an index and is what get_settings returns and update_settings accepts. The remaining models are the values used within it, for example the embedder models are used to configure vector search.

Settings Models API

meilisearch_python_sdk.models.settings

MinWordSizeForTypos

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class MinWordSizeForTypos(CamelBase):
    one_typo: int | None = None
    two_typos: int | None = None

one_typo class-attribute instance-attribute

one_typo: int | None = None

two_typos class-attribute instance-attribute

two_typos: int | None = None

TypoTolerance

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class TypoTolerance(CamelBase):
    enabled: bool = True
    disable_on_attributes: list[str] | None = None
    disable_on_words: list[str] | None = None
    disable_on_numbers: bool | None = None
    min_word_size_for_typos: MinWordSizeForTypos | None = None

enabled class-attribute instance-attribute

enabled: bool = True

disable_on_attributes class-attribute instance-attribute

disable_on_attributes: list[str] | None = None

disable_on_words class-attribute instance-attribute

disable_on_words: list[str] | None = None

disable_on_numbers class-attribute instance-attribute

disable_on_numbers: bool | None = None

min_word_size_for_typos class-attribute instance-attribute

min_word_size_for_typos: MinWordSizeForTypos | None = None

Faceting

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class Faceting(CamelBase):
    max_values_per_facet: int
    sort_facet_values_by: dict[str, str] | None = None

    @field_validator("sort_facet_values_by")  # type: ignore[attr-defined]
    @classmethod
    def validate_facet_order(cls, v: dict[str, str] | None) -> dict[str, str] | None:
        if not v:  # pragma: no cover
            return None

        for _, value in v.items():
            if value not in ("alpha", "count"):
                raise ValueError('facet_order must be either "alpha" or "count"')

        return v

max_values_per_facet instance-attribute

max_values_per_facet: int

sort_facet_values_by class-attribute instance-attribute

sort_facet_values_by: dict[str, str] | None = None

validate_facet_order classmethod

validate_facet_order(
    v: dict[str, str] | None,
) -> dict[str, str] | None
Source code in meilisearch_python_sdk/models/settings.py
@field_validator("sort_facet_values_by")  # type: ignore[attr-defined]
@classmethod
def validate_facet_order(cls, v: dict[str, str] | None) -> dict[str, str] | None:
    if not v:  # pragma: no cover
        return None

    for _, value in v.items():
        if value not in ("alpha", "count"):
            raise ValueError('facet_order must be either "alpha" or "count"')

    return v

Pagination

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class Pagination(CamelBase):
    max_total_hits: int

max_total_hits instance-attribute

max_total_hits: int

Distribution

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class Distribution(CamelBase):
    mean: float
    sigma: float

mean instance-attribute

mean: float

sigma instance-attribute

sigma: float

OpenAiEmbedder

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class OpenAiEmbedder(CamelBase):
    source: str = "openAi"
    url: str | None = None
    model: str | None = None
    dimensions: int | None = None
    api_key: str | None = None
    document_template: str | None = None
    document_template_max_bytes: int | None = None
    distribution: Distribution | None = None
    binary_quantized: bool | None = None

source class-attribute instance-attribute

source: str = 'openAi'

url class-attribute instance-attribute

url: str | None = None

model class-attribute instance-attribute

model: str | None = None

dimensions class-attribute instance-attribute

dimensions: int | None = None

api_key class-attribute instance-attribute

api_key: str | None = None

document_template class-attribute instance-attribute

document_template: str | None = None

document_template_max_bytes class-attribute instance-attribute

document_template_max_bytes: int | None = None

distribution class-attribute instance-attribute

distribution: Distribution | None = None

binary_quantized class-attribute instance-attribute

binary_quantized: bool | None = None

HuggingFaceEmbedder

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class HuggingFaceEmbedder(CamelBase):
    source: str = "huggingFace"
    model: str | None = None
    revision: str | None = None
    document_template: str | None = None
    document_template_max_bytes: int | None = None
    distribution: Distribution | None = None
    dimensions: int | None = None
    binary_quantized: bool | None = None
    pooling: Literal["useModel", "forceMean", "forceCls"] | None = None

source class-attribute instance-attribute

source: str = 'huggingFace'

model class-attribute instance-attribute

model: str | None = None

revision class-attribute instance-attribute

revision: str | None = None

document_template class-attribute instance-attribute

document_template: str | None = None

document_template_max_bytes class-attribute instance-attribute

document_template_max_bytes: int | None = None

distribution class-attribute instance-attribute

distribution: Distribution | None = None

dimensions class-attribute instance-attribute

dimensions: int | None = None

binary_quantized class-attribute instance-attribute

binary_quantized: bool | None = None

pooling class-attribute instance-attribute

pooling: (
    Literal["useModel", "forceMean", "forceCls"] | None
) = None

OllamaEmbedder

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class OllamaEmbedder(CamelBase):
    source: str = "ollama"
    url: str | None = None
    api_key: str | None = None
    model: str
    dimensions: int | None = None
    document_template: str | None = None
    document_template_max_bytes: int | None = None
    distribution: Distribution | None = None
    binary_quantized: bool | None = None

source class-attribute instance-attribute

source: str = 'ollama'

url class-attribute instance-attribute

url: str | None = None

api_key class-attribute instance-attribute

api_key: str | None = None

model instance-attribute

model: str

dimensions class-attribute instance-attribute

dimensions: int | None = None

document_template class-attribute instance-attribute

document_template: str | None = None

document_template_max_bytes class-attribute instance-attribute

document_template_max_bytes: int | None = None

distribution class-attribute instance-attribute

distribution: Distribution | None = None

binary_quantized class-attribute instance-attribute

binary_quantized: bool | None = None

RestEmbedder

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class RestEmbedder(CamelBase):
    source: str = "rest"
    url: str
    api_key: str | None = None
    dimensions: int
    document_template: str | None = None
    document_template_max_bytes: int | None = None
    distribution: Distribution | None = None
    headers: JsonDict | None = None
    request: JsonDict
    response: JsonDict | list[Any]
    binary_quantized: bool | None = None
    indexing_fragments: JsonDict | None = None
    search_fragment: JsonDict | None = None

    @model_validator(mode="after")
    def check_document_template(self) -> RestEmbedder:
        if self.indexing_fragments is not None and self.document_template is not None:
            raise ValueError("document_template must be None when indexing_fragments is set")

        return self

source class-attribute instance-attribute

source: str = 'rest'

url instance-attribute

url: str

api_key class-attribute instance-attribute

api_key: str | None = None

dimensions instance-attribute

dimensions: int

document_template class-attribute instance-attribute

document_template: str | None = None

document_template_max_bytes class-attribute instance-attribute

document_template_max_bytes: int | None = None

distribution class-attribute instance-attribute

distribution: Distribution | None = None

headers class-attribute instance-attribute

headers: JsonDict | None = None

request instance-attribute

request: JsonDict

response instance-attribute

response: JsonDict | list[Any]

binary_quantized class-attribute instance-attribute

binary_quantized: bool | None = None

indexing_fragments class-attribute instance-attribute

indexing_fragments: JsonDict | None = None

search_fragment class-attribute instance-attribute

search_fragment: JsonDict | None = None

check_document_template

check_document_template() -> RestEmbedder
Source code in meilisearch_python_sdk/models/settings.py
@model_validator(mode="after")
def check_document_template(self) -> RestEmbedder:
    if self.indexing_fragments is not None and self.document_template is not None:
        raise ValueError("document_template must be None when indexing_fragments is set")

    return self

UserProvidedEmbedder

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class UserProvidedEmbedder(CamelBase):
    source: str = "userProvided"
    dimensions: int
    distribution: Distribution | None = None
    document_template: str | None = None
    document_template_max_bytes: int | None = None
    binary_quantized: bool | None = None

source class-attribute instance-attribute

source: str = 'userProvided'

dimensions instance-attribute

dimensions: int

distribution class-attribute instance-attribute

distribution: Distribution | None = None

document_template class-attribute instance-attribute

document_template: str | None = None

document_template_max_bytes class-attribute instance-attribute

document_template_max_bytes: int | None = None

binary_quantized class-attribute instance-attribute

binary_quantized: bool | None = None

CompositeEmbedder

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class CompositeEmbedder(CamelBase):
    source: str = "composite"
    search_embedder: (
        OpenAiEmbedder | HuggingFaceEmbedder | OllamaEmbedder | RestEmbedder | UserProvidedEmbedder
    )
    indexing_embedder: (
        OpenAiEmbedder | HuggingFaceEmbedder | OllamaEmbedder | RestEmbedder | UserProvidedEmbedder
    )

source class-attribute instance-attribute

source: str = 'composite'

search_embedder instance-attribute

search_embedder: (
    OpenAiEmbedder
    | HuggingFaceEmbedder
    | OllamaEmbedder
    | RestEmbedder
    | UserProvidedEmbedder
)

indexing_embedder instance-attribute

indexing_embedder: (
    OpenAiEmbedder
    | HuggingFaceEmbedder
    | OllamaEmbedder
    | RestEmbedder
    | UserProvidedEmbedder
)

Embedders

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class Embedders(CamelBase):
    embedders: dict[
        str,
        OpenAiEmbedder
        | HuggingFaceEmbedder
        | OllamaEmbedder
        | RestEmbedder
        | UserProvidedEmbedder
        | CompositeEmbedder,
    ]

embedders instance-attribute

embedders: dict[
    str,
    OpenAiEmbedder
    | HuggingFaceEmbedder
    | OllamaEmbedder
    | RestEmbedder
    | UserProvidedEmbedder
    | CompositeEmbedder,
]

ProximityPrecision

Bases: str, Enum

Source code in meilisearch_python_sdk/models/settings.py
class ProximityPrecision(str, Enum):
    BY_WORD = "byWord"
    BY_ATTRIBUTE = "byAttribute"

BY_WORD class-attribute instance-attribute

BY_WORD = 'byWord'

BY_ATTRIBUTE class-attribute instance-attribute

BY_ATTRIBUTE = 'byAttribute'

LocalizedAttributes

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class LocalizedAttributes(CamelBase):
    locales: list[str]
    attribute_patterns: list[str]

locales instance-attribute

locales: list[str]

attribute_patterns instance-attribute

attribute_patterns: list[str]

Filter

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class Filter(CamelBase):
    equality: bool
    comparison: bool

equality instance-attribute

equality: bool

comparison instance-attribute

comparison: bool

FilterableAttributeFeatures

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class FilterableAttributeFeatures(CamelBase):
    facet_search: bool
    filter: Filter
facet_search: bool

filter instance-attribute

filter: Filter

FilterableAttributes

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class FilterableAttributes(CamelBase):
    attribute_patterns: list[str]
    features: FilterableAttributeFeatures

attribute_patterns instance-attribute

attribute_patterns: list[str]

features instance-attribute

features: FilterableAttributeFeatures

ForeignKey

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class ForeignKey(CamelBase):
    foreign_index_uid: str
    field_name: str

foreign_index_uid instance-attribute

foreign_index_uid: str

field_name instance-attribute

field_name: str

MeilisearchSettings

Bases: CamelBase

Source code in meilisearch_python_sdk/models/settings.py
class MeilisearchSettings(CamelBase):
    synonyms: JsonDict | None = None
    stop_words: list[str] | None = None
    ranking_rules: list[str] | None = None
    filterable_attributes: list[str | FilterableAttributes] | None = None
    distinct_attribute: str | None = None
    searchable_attributes: list[str] | None = None
    displayed_attributes: list[str] | None = None
    sortable_attributes: list[str] | None = None
    typo_tolerance: TypoTolerance | None = None
    faceting: Faceting | None = None
    pagination: Pagination | None = None
    proximity_precision: ProximityPrecision | None = None
    separator_tokens: list[str] | None = None
    non_separator_tokens: list[str] | None = None
    search_cutoff_ms: int | None = None
    dictionary: list[str] | None = None
    embedders: (
        dict[
            str,
            OpenAiEmbedder
            | HuggingFaceEmbedder
            | OllamaEmbedder
            | RestEmbedder
            | UserProvidedEmbedder
            | CompositeEmbedder,
        ]
        | None
    ) = None  # Optional[Embedders] = None
    localized_attributes: list[LocalizedAttributes] | None = None
    facet_search: bool | None = None
    prefix_search: Literal["disabled", "indexingTime", "searchTime"] | None = None
    foreign_keys: list[ForeignKey] | None = None

synonyms class-attribute instance-attribute

synonyms: JsonDict | None = None

stop_words class-attribute instance-attribute

stop_words: list[str] | None = None

ranking_rules class-attribute instance-attribute

ranking_rules: list[str] | None = None

filterable_attributes class-attribute instance-attribute

filterable_attributes: (
    list[str | FilterableAttributes] | None
) = None

distinct_attribute class-attribute instance-attribute

distinct_attribute: str | None = None

searchable_attributes class-attribute instance-attribute

searchable_attributes: list[str] | None = None

displayed_attributes class-attribute instance-attribute

displayed_attributes: list[str] | None = None

sortable_attributes class-attribute instance-attribute

sortable_attributes: list[str] | None = None

typo_tolerance class-attribute instance-attribute

typo_tolerance: TypoTolerance | None = None

faceting class-attribute instance-attribute

faceting: Faceting | None = None

pagination class-attribute instance-attribute

pagination: Pagination | None = None

proximity_precision class-attribute instance-attribute

proximity_precision: ProximityPrecision | None = None

separator_tokens class-attribute instance-attribute

separator_tokens: list[str] | None = None

non_separator_tokens class-attribute instance-attribute

non_separator_tokens: list[str] | None = None

search_cutoff_ms class-attribute instance-attribute

search_cutoff_ms: int | None = None

dictionary class-attribute instance-attribute

dictionary: list[str] | None = None

embedders class-attribute instance-attribute

embedders: (
    dict[
        str,
        OpenAiEmbedder
        | HuggingFaceEmbedder
        | OllamaEmbedder
        | RestEmbedder
        | UserProvidedEmbedder
        | CompositeEmbedder,
    ]
    | None
) = None

localized_attributes class-attribute instance-attribute

localized_attributes: list[LocalizedAttributes] | None = (
    None
)
facet_search: bool | None = None
prefix_search: (
    Literal["disabled", "indexingTime", "searchTime"] | None
) = None

foreign_keys class-attribute instance-attribute

foreign_keys: list[ForeignKey] | None = None