Models search
Search Models
These are the models used by the search methods. search returns a SearchResults object,
facet_search returns a FacetSearchResults object, and search_similar_documents returns a
SimilarSearchResults object. Hybrid, Personalize, and the Federation models are passed
into the search methods to control how the search is run.
Search Models API
meilisearch_python_sdk.models.search
FacetHits
Bases: CamelBase
Source code in meilisearch_python_sdk/models/search.py
| class FacetHits(CamelBase):
value: str
count: int
|
FacetSearchResults
Bases: CamelBase
Source code in meilisearch_python_sdk/models/search.py
| class FacetSearchResults(CamelBase):
facet_hits: list[FacetHits]
facet_query: str | None
processing_time_ms: int
|
facet_hits
instance-attribute
facet_hits: list[FacetHits]
facet_query
instance-attribute
processing_time_ms
instance-attribute
Hybrid
Bases: CamelBase
Source code in meilisearch_python_sdk/models/search.py
| class Hybrid(CamelBase):
semantic_ratio: float
embedder: str
|
semantic_ratio
instance-attribute
embedder
instance-attribute
MergeFacets
Bases: CamelBase
Source code in meilisearch_python_sdk/models/search.py
| class MergeFacets(CamelBase):
max_values_per_facet: int
|
max_values_per_facet
instance-attribute
max_values_per_facet: int
Federation
Bases: CamelBase
Source code in meilisearch_python_sdk/models/search.py
| class Federation(CamelBase):
limit: int = 20
offset: int = 0
facets_by_index: dict[str, list[str]] | None = None
distinct: str | None = None
|
limit
class-attribute
instance-attribute
offset
class-attribute
instance-attribute
facets_by_index
class-attribute
instance-attribute
facets_by_index: dict[str, list[str]] | None = None
distinct
class-attribute
instance-attribute
distinct: str | None = None
FederationMerged
Bases: Federation
Source code in meilisearch_python_sdk/models/search.py
| class FederationMerged(Federation):
merge_facets: MergeFacets | None
|
merge_facets
instance-attribute
merge_facets: MergeFacets | None
FederationOptions
Bases: CamelBase
Source code in meilisearch_python_sdk/models/search.py
| class FederationOptions(CamelBase):
weight: float
|
weight
instance-attribute
Personalize
Bases: CamelBase
Source code in meilisearch_python_sdk/models/search.py
| class Personalize(CamelBase):
user_context: str
|
user_context
instance-attribute
SearchParams
Bases: CamelBase
Source code in meilisearch_python_sdk/models/search.py
| class SearchParams(CamelBase):
index_uid: str
query: str | None = Field(None, alias="q")
federation_options: FederationOptions | None = None
offset: int = 0
limit: int = 20
filter: Filter | None = None
facets: list[str] | None = None
attributes_to_retrieve: list[str] = ["*"]
attributes_to_crop: list[str] | None = None
crop_length: int = 200
attributes_to_highlight: list[str] | None = None
sort: list[str] | None = None
show_matches_position: bool = False
highlight_pre_tag: str = "<em>"
highlight_post_tag: str = "</em>"
crop_marker: str = "..."
matching_strategy: Literal["all", "last", "frequency"] = "last"
hits_per_page: int | None = None
page: int | None = None
attributes_to_search_on: list[str] | None = None
show_ranking_score: bool = False
show_ranking_score_details: bool = False
ranking_score_threshold: float | None = None
vector: list[float] | None = None
hybrid: Hybrid | None = None
locales: list[str] | None = None
retrieve_vectors: bool | None = None
media: JsonMapping | None = None
show_performance_details: bool | None = None
personalize: Personalize | None = None
@field_validator("ranking_score_threshold", mode="before") # type: ignore[attr-defined]
@classmethod
def validate_ranking_score_threshold(cls, v: float | None) -> float | None:
if v and not 0.0 <= v <= 1.0:
raise MeilisearchError("ranking_score_threshold must be between 0.0 and 1.0")
return v
|
index_uid
instance-attribute
query
class-attribute
instance-attribute
query: str | None = Field(None, alias='q')
federation_options
class-attribute
instance-attribute
federation_options: FederationOptions | None = None
offset
class-attribute
instance-attribute
limit
class-attribute
instance-attribute
filter
class-attribute
instance-attribute
filter: Filter | None = None
facets
class-attribute
instance-attribute
facets: list[str] | None = None
attributes_to_retrieve
class-attribute
instance-attribute
attributes_to_retrieve: list[str] = ['*']
attributes_to_crop
class-attribute
instance-attribute
attributes_to_crop: list[str] | None = None
crop_length
class-attribute
instance-attribute
attributes_to_highlight
class-attribute
instance-attribute
attributes_to_highlight: list[str] | None = None
sort
class-attribute
instance-attribute
sort: list[str] | None = None
show_matches_position
class-attribute
instance-attribute
show_matches_position: bool = False
highlight_pre_tag
class-attribute
instance-attribute
highlight_pre_tag: str = '<em>'
highlight_post_tag
class-attribute
instance-attribute
highlight_post_tag: str = '</em>'
crop_marker
class-attribute
instance-attribute
matching_strategy
class-attribute
instance-attribute
matching_strategy: Literal["all", "last", "frequency"] = (
"last"
)
hits_per_page
class-attribute
instance-attribute
hits_per_page: int | None = None
page
class-attribute
instance-attribute
attributes_to_search_on
class-attribute
instance-attribute
attributes_to_search_on: list[str] | None = None
show_ranking_score
class-attribute
instance-attribute
show_ranking_score: bool = False
show_ranking_score_details
class-attribute
instance-attribute
show_ranking_score_details: bool = False
ranking_score_threshold
class-attribute
instance-attribute
ranking_score_threshold: float | None = None
vector
class-attribute
instance-attribute
vector: list[float] | None = None
hybrid
class-attribute
instance-attribute
hybrid: Hybrid | None = None
locales
class-attribute
instance-attribute
locales: list[str] | None = None
retrieve_vectors
class-attribute
instance-attribute
retrieve_vectors: bool | None = None
media: JsonMapping | None = None
show_performance_details: bool | None = None
personalize
class-attribute
instance-attribute
personalize: Personalize | None = None
validate_ranking_score_threshold
classmethod
validate_ranking_score_threshold(
v: float | None,
) -> float | None
Source code in meilisearch_python_sdk/models/search.py
| @field_validator("ranking_score_threshold", mode="before") # type: ignore[attr-defined]
@classmethod
def validate_ranking_score_threshold(cls, v: float | None) -> float | None:
if v and not 0.0 <= v <= 1.0:
raise MeilisearchError("ranking_score_threshold must be between 0.0 and 1.0")
return v
|
SearchResults
Bases: CamelBase, Generic[T]
Source code in meilisearch_python_sdk/models/search.py
| class SearchResults(CamelBase, Generic[T]):
hits: list[T]
offset: int | None = None
limit: int | None = None
estimated_total_hits: int | None = None
processing_time_ms: int
query: str
facet_distribution: JsonDict | None = None
facet_stats: JsonDict | None = None
total_pages: int | None = None
total_hits: int | None = None
page: int | None = None
hits_per_page: int | None = None
semantic_hit_count: int | None = None
query_vector: list[float] | None = None
performance_details: JsonDict | None = None
|
offset
class-attribute
instance-attribute
offset: int | None = None
limit
class-attribute
instance-attribute
estimated_total_hits
class-attribute
instance-attribute
estimated_total_hits: int | None = None
processing_time_ms
instance-attribute
facet_distribution
class-attribute
instance-attribute
facet_distribution: JsonDict | None = None
facet_stats
class-attribute
instance-attribute
facet_stats: JsonDict | None = None
total_pages
class-attribute
instance-attribute
total_pages: int | None = None
total_hits
class-attribute
instance-attribute
total_hits: int | None = None
page
class-attribute
instance-attribute
hits_per_page
class-attribute
instance-attribute
hits_per_page: int | None = None
semantic_hit_count
class-attribute
instance-attribute
semantic_hit_count: int | None = None
query_vector
class-attribute
instance-attribute
query_vector: list[float] | None = None
performance_details: JsonDict | None = None
SearchResultsWithUID
Bases: SearchResults, Generic[T]
Source code in meilisearch_python_sdk/models/search.py
| class SearchResultsWithUID(SearchResults, Generic[T]):
index_uid: str
|
index_uid
instance-attribute
SearchResultsFederated
Bases: CamelBase, Generic[T]
Source code in meilisearch_python_sdk/models/search.py
| class SearchResultsFederated(CamelBase, Generic[T]):
hits: list[T]
offset: int | None = None
limit: int | None = None
estimated_total_hits: int | None = None
processing_time_ms: int
facet_distribution: JsonDict | None = None
facet_stats: JsonDict | None = None
total_pages: int | None = None
total_hits: int | None = None
page: int | None = None
hits_per_page: int | None = None
semantic_hit_count: int | None = None
facets_by_index: JsonDict | None = None
|
offset
class-attribute
instance-attribute
offset: int | None = None
limit
class-attribute
instance-attribute
estimated_total_hits
class-attribute
instance-attribute
estimated_total_hits: int | None = None
processing_time_ms
instance-attribute
facet_distribution
class-attribute
instance-attribute
facet_distribution: JsonDict | None = None
facet_stats
class-attribute
instance-attribute
facet_stats: JsonDict | None = None
total_pages
class-attribute
instance-attribute
total_pages: int | None = None
total_hits
class-attribute
instance-attribute
total_hits: int | None = None
page
class-attribute
instance-attribute
hits_per_page
class-attribute
instance-attribute
hits_per_page: int | None = None
semantic_hit_count
class-attribute
instance-attribute
semantic_hit_count: int | None = None
facets_by_index
class-attribute
instance-attribute
facets_by_index: JsonDict | None = None
SimilarSearchResults
Bases: CamelBase, Generic[T]
Source code in meilisearch_python_sdk/models/search.py
| class SimilarSearchResults(CamelBase, Generic[T]):
hits: list[T]
id: str
processing_time_ms: int
limit: int | None = None
offset: int | None = None
estimated_total_hits: int | None = None
|
processing_time_ms
instance-attribute
limit
class-attribute
instance-attribute
offset
class-attribute
instance-attribute
offset: int | None = None
estimated_total_hits
class-attribute
instance-attribute
estimated_total_hits: int | None = None