Skip to content

openfoodfacts_proxy.models.search_a_licious.search_parameters

[docs] module openfoodfacts_proxy.models.search_a_licious.search_parameters

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
from typing import Any

from pydantic import BaseModel, Field

from openfoodfacts_proxy.models.search_a_licious.distribution_chart_type import DistributionChartType
from openfoodfacts_proxy.models.search_a_licious.scatter_chart_type import ScatterChartType


class SearchParameters(BaseModel):
    """Common Search-a-licious POST parameters."""

    q: str | None = Field(
        default=None,
        description=(
            "The search query. It supports Lucene query syntax and falls back to full text search for unparsed terms."
        ),
    )
    langs: list[str] = Field(
        default_factory=lambda: ["en"],
        description="Languages to support during search, ordered by preference.",
    )
    page_size: int = Field(default=10, description="Number of results to return per page.")
    page: int = Field(default=1, ge=1, description="Page to request, starting at 1.")
    fields: list[str] | None = Field(
        default=None,
        description="List of fields to include in the response. All other fields are ignored.",
    )
    sort_by: str | None = Field(
        default=None,
        description="Field name or sort script to use when ordering results.",
    )
    facets: list[str] | None = Field(
        default=None,
        description="Facet names to return in the response.",
    )
    charts: list[DistributionChartType | ScatterChartType] | None = Field(
        default=None,
        description="Vega chart descriptions to include in the response.",
    )
    sort_params: dict[str, Any] | None = Field(
        default=None,
        description="Additional parameters used by script-based sorting.",
    )
    index_id: str | None = Field(
        default=None,
        description="Index identifier to query. If omitted, the default index is used.",
    )