Skip to content

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: StrEnum

Source code in meilisearch_python_sdk/models/settings.py
class ProximityPrecision(StrEnum):
    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