The python client for MeiliSearch API.
Project description
MeiliSearch Python Client
The python client for MeiliSearch API.
MeiliSearch provides an ultra relevant and instant full-text search. Our solution is open-source and you can check out our repository here.
Here is the MeiliSearch documentation 📖
Table of Contents
🔧 Installation
With pip3
in command line:
pip3 install meilisearch
🏃♀️ Run MeiliSearch
There are many easy ways to download and run a MeiliSearch instance.
For example, if you use Docker:
$ docker run -it --rm -p 7700:7700 getmeili/meilisearch:latest --api-key=apiKey
NB: you can also download MeiliSearch from Homebrew or APT.
🚀 Getting started
Add documents
import meilisearch
client = meilisearch.Client("http://127.0.0.1:7700", "apiKey")
index = client.create_index(name='books', uid='books_uid') # If your index does not exist
index = client.get_index('books_uid') # If you already created your index
documents = [
{ "id": 123, "title": 'Pride and Prejudice' },
{ "id": 456, "title": 'Le Petit Prince' },
{ "id": 1, "title": 'Alice In Wonderland' },
{ "id": 1344, "title": 'The Hobbit' },
{ "id": 4, "title": 'Harry Potter and the Half-Blood Prince' },
{ "id": 42, "title": 'The Hitchhiker\'s Guide to the Galaxy' }
]
index.add_documents(documents) # asynchronous
Search in index
# MeiliSearch is typo-tolerant:
index.search({
"q": 'hary pottre'
})
Output:
{
"hits" => [{
"id" => 4,
"title" => "Harry Potter and the Half-Blood Prince"
}],
"offset" => 0,
"limit" => 20,
"processingTimeMs" => 1,
"query" => "hary pottre"
}
🎬 Examples
You can check out the API documentation.
Indexes
Create an index
# Create an index
client.create_index(name='Books')
# Create an index with a specific uid (uid must be unique)
client.create_index(name= 'Books', uid= 'books')
# Create an index with a schema
schema = {
"id": ["displayed", "indexed", "identifier"],
"title": ["displayed", "indexed"]
}
client.create_index(name= 'Books', schema= schema)
List all indexes
client.get_indexes()
Get an index object
index = client.get_index(uid="books")
Documents
Fetch documents
# Get one document
index.get_document(123)
# Get documents by batch
index.get_documents({ "offset": 10 , "limit": 20 })
Add documents
index.add_documents([{ "id": 2, "title": 'Madame Bovary' }])
Response:
{
"updateId": 1
}
This updateId
allows you to track the current update.
Delete documents
# Delete one document
index.delete_document(2)
# Delete several documents
index.delete_documents([1, 42])
# Delete all documents
index.delete_all_documents()
Update status
# Get one update
# Parameter: the updateId got after an asynchronous request (e.g. documents addition)
index.get_update(1)
# Get all updates
index.get_updates()
Search
Basic search
index.search({
"q": "prince"
})
{
"hits": [
{
"id": 456,
"title": "Le Petit Prince"
},
{
"id": 4,
"title": "Harry Potter and the Half-Blood Prince"
}
],
"offset": 0,
"limit": 20,
"processingTimeMs": 13,
"query": "prince"
}
Custom search
All the supported options are described in this documentation section.
response = index.search({
"q": "prince",
"limit": 1
})
{
"hits": [
{
"id": 456,
"title": "Le Petit Prince"
}
],
"offset": 0,
"limit": 1,
"processingTimeMs": 10,
"query": "prince"
}
🤖 Compatibility with MeiliSearch
This package works for MeiliSearch v0.8.x
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for meilisearch-0.8.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ae3c71bc5ee5ffebdcafcbdc4c1937829b774bf1dcb7d1409cd4582873c9ec1f |
|
MD5 | 3ea6ebe564c279adf4f4acfe7dd94fdd |
|
BLAKE2b-256 | e1b943afb7f43642e377aeeecc69a1c229093bcbc25143e40bd667a352f53041 |