⚠️ This client is deprecated⚠️ As of Enterprise Search version 7.10.0, we are directing users to the new Enterprise Search Python Client and deprecating this client.
This client will be compatible with all Enterprise Search 7.x releases, but will not be compatible with 8.x releases. Our development effort on this project will be limited to bug fixes. All future enhancements will be focused on the Enterprise Search Python Client.
Thank you! - Elastic
A first-party Python client for Elastic Workplace Search.
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.
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.
client = Client(authorization_token, "https://your-server.example.com/api/ws/v1")
Document API features are found in the client.documents
module.
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 a document from a custom content source:
content_source_key = 'content source key'
ids = ['1234']
client.documents.delete_documents(content_source_key, ids)
Permissions API features are found in the client.permissions
module.
content_source_key = 'content source key'
client.permissions.list_all_permissions(content_source_key)
content_source_key = 'content source key'
client.permissions.list_all_permissions(content_source_key, size=20, current=2)
content_source_key = 'content source key'
user = 'enterprise_search'
client.permissions.get_user_permissions(content_source_key, user)
content_source_key = 'content source key'
user = 'enterprise_search'
permissions = ['permission1']
client.permissions.add_user_permissions(content_source_key, 'enterprise_search', { 'permissions': permissions })
content_source_key = 'content source key'
user = 'enterprise_search'
permissions = ['permission2']
client.permissions.update_user_permissions(content_source_key, 'enterprise_search', { 'permissions': permissions })
content_source_key = 'content source key'
user = 'enterprise_search'
permissions = ['permission2']
client.permissions.remove_user_permissions(content_source_key, 'enterprise_search', { 'permissions': permissions })
If something is not working as expected, please open an issue.
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.
Thank you to all the contributors!