Skip to content

Commit

Permalink
Merge pull request #426 from sanders41/meilisearch-1.1.0
Browse files Browse the repository at this point in the history
Update for Meilisearch 1.1.0
  • Loading branch information
sanders41 committed Apr 3, 2023
2 parents 7a53b7a + 265cec1 commit fb3375d
Show file tree
Hide file tree
Showing 7 changed files with 493 additions and 27 deletions.
43 changes: 42 additions & 1 deletion meilisearch_python_async/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,16 @@
from meilisearch_python_async._http_requests import HttpRequests
from meilisearch_python_async.errors import InvalidRestriction, MeilisearchApiError
from meilisearch_python_async.index import Index
from meilisearch_python_async.models.client import ClientStats, Key, KeyCreate, KeySearch, KeyUpdate
from meilisearch_python_async.models.client import (
ClientStats,
Key,
KeyCreate,
KeySearch,
KeyUpdate,
)
from meilisearch_python_async.models.health import Health
from meilisearch_python_async.models.index import IndexInfo
from meilisearch_python_async.models.search import SearchParams, SearchResultsWithUID
from meilisearch_python_async.models.task import TaskInfo
from meilisearch_python_async.models.version import Version
from meilisearch_python_async.task import wait_for_task
Expand Down Expand Up @@ -495,6 +502,40 @@ async def update_key(self, key: KeyUpdate) -> Key:

return Key(**response.json())

async def multi_search(self, queries: list[SearchParams]) -> list[SearchResultsWithUID]:
"""Multi-index search.
Args:
queries: List of SearchParameters
Returns:
Results of the search
Raises:
MeilisearchCommunicationError: If there was an error communicating with the server.
MeilisearchApiError: If the Meilisearch API returned an error.
Examples:
>>> from meilisearch_python_async import Client
>>> from meilisearch_python_async.models.search import SearchParams
>>> async with Client("http://localhost.com", "masterKey") as client:
>>> queries = [
>>> SearchParams(index_uid="my_first_index", query"Some search"),
>>> SearchParams(index_uid="my_second_index", query="Another search")
>>> ]
>>> search_results = await client.search(queries)
"""
url = "multi-search"
response = await self._http_requests.post(
url, body={"queries": [x.dict(by_alias=True) for x in queries]}
)

return [SearchResultsWithUID(**x) for x in response.json()["results"]]

async def get_raw_index(self, uid: str) -> IndexInfo | None:
"""Gets the index and returns all the index information rather than an Index instance.
Expand Down

0 comments on commit fb3375d

Please sign in to comment.