Skip to main content

The python client for MeiliSearch API.

Project description

MeiliSearch Python Client

PyPI version Licence test Status

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meilisearch-0.8.3.tar.gz (10.6 kB view hashes)

Uploaded Source

Built Distribution

meilisearch-0.8.3-py3-none-any.whl (16.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page