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 pip
in command line:
pip 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
🚀 Getting started
Add documents
import meilisearch
client = meilisearch.Client("http://127.0.0.1:7700", "apiKey")
indexes = client.get_index('index_uid')
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
⚠️ The method add_documents
is asynchronous.
It means that your new documents addition will be added to the stack of actions. It may not be instantly processed. Check for the updates tracking.
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"
}
Create an index
If you don't have any index yet, you can create one with:
index = client.create_index(name='Books')
🎬 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.document(123)
# Get documents by batch
index.documents({ "offset": 10 , "limit": 20 })
Add documents
index.add_documents([{ "id": 2, "title": 'Madame Bovary' }])
Response:
{
"updateId": 1
}
With this updateId
you can track your operation status.
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.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24a4c909743bc53aa6db59ccc417a204d6f452f804a8a68c5c33bf4a9189cc1a |
|
MD5 | f086455efb655f0c90832b35beafbaab |
|
BLAKE2b-256 | e71a718c94a883e7447e8ea89ec6582d1cedd34c89ea167e763b8c2f31e79ba1 |