A first-party Python client for Elastic Workplace Search.
Contents
🐣
Getting started Supports Python 2.7 and Python 3.4+.
Installed with
pip <http://pypi.python.org/pypi/pip>
:
$ python -m pip install elastic_workplace_search
You can also download and install the project source:
$ python setup.py install
Depends on requests for making HTTP requests.
Usage
Creating a new Client
from elastic_workplace_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/ws/v1")
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/workplace-search-python',
'title': 'Elastic Workplace 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...
- Before opening a pull request, please create an issue to discuss the scope of your proposal.
- Please write simple code and concise documentation, when appropriate.
📗
License
Thank you to all the contributors!