Skip to main content

An API client for Elastic Enterprise Search

Project description

Elastic Enterprise Search Logo

CircleCI build

A first-party Python client for Elastic Enterprise Search.

Contents


Getting started 🐣

Supports Python 2.7 and Python 3.3+.

Depends on futures and requests.

Installed with pip <http://pypi.python.org/pypi/pip>:

$ python -m pip install elastic_enterprise_search

You can also download and install the project source:

$ python setup.py install

Usage

Creating a new Client

  from elastic_enterprise_search import Client
  authorization_token = 'authorization token'
  client = Client(authorization_token)

Retrieve your access token and a content source key after creating your content source.

Change API endpoint

client = Client(authorization_token, "https://your-server.example.com/api/v1/ent")

Custom Source Documents

Document API features are found in the client.documents module.

Indexing Documents

Indexing a document into a custom content source:

  content_source_key = 'content source key'
  documents = [
    {
      'id': '1234',
      'url': 'https://github.com/elastic/enterprise-search-python',
      'title': 'Elastic Enterprise Search Official Python Client',
      'body': 'A descriptive body, with document contents and metadata'
    }
  ]

  client.documents.index_documents(content_source_key, documents)

Deleting Documents

Deleting a document from a custom content source:

  content_source_key = 'content source key'
  ids = ['1234']

  client.documents.delete_documents(content_source_key, ids)

Permissions

Permissions API features are found in the client.permissions module.

Listing all permissions

content_source_key = 'content source key'

client.permissions.list_all_permissions(content_source_key)

Listing all permissions with paging

content_source_key = 'content source key'

client.permissions.list_all_permissions(content_source_key, size=20, current=2)

Retrieve a User's permissions

content_source_key = 'content source key'
user = 'enterprise_search'

client.permissions.get_user_permissions(content_source_key, user)

Add permissions to a User

content_source_key = 'content source key'
user = 'enterprise_search'
permissions = ['permission1']

client.permissions.add_user_permissions(content_source_key, 'enterprise_search', { 'permissions': permissions })

Update a User's permissions

content_source_key = 'content source key'
user = 'enterprise_search'
permissions = ['permission2']

client.permissions.update_user_permissions(content_source_key, 'enterprise_search', { 'permissions': permissions })

Remove permissions from a User

content_source_key = 'content source key'
user = 'enterprise_search'
permissions = ['permission2']

client.permissions.remove_user_permissions(content_source_key, 'enterprise_search', { 'permissions': permissions })

FAQ 🔮

Where do I report issues with the client?

If something is not working as expected, please open an issue.

Contribute 🚀

We welcome contributors to the project. Before you begin, a couple notes...

License 📗

Apache 2.0 © Elastic

Thank you to all the contributors!

Project details


Download files

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

Files for elastic-enterprise-search, version 0.2.0
Filename, size File type Python version Upload date Hashes
Filename, size elastic_enterprise_search-0.2.0.tar.gz (11.1 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page