aioes is a asyncio compatible library for working with ElasticSearch
Read aioes documentation on Read The Docs: http://aioes.readthedocs.org/
import asyncio
from aioes import Elasticsearch
@asyncio.coroutine
def go():
es = Elasticsearch(['localhost:9200'])
ret = yield from es.create(index="my-index",
doc_type="test-type",
id=42,
body={"str": "data",
"int": 1})
assert (ret == {'_id': '42',
'_index': 'my-index',
'_type': 'test-type',
'_version': 1,
'ok': True})
answer = yield from es.get(index="my-index",
doc_type="test-type",
id=42)
assert answer['_source'] == {'str': 'data', 'int': 1}
loop = asyncio.get_event_loop()
loop.run_until_complete(go())
Make sure you have an instance of elastic-search running on port 9200 before executing the tests.
In order for all tests to work you need to add the following lines in the config/elasticsearch.yml configuration file:
Enable groovy scripts:
script.groovy.sandbox.enabled: true
Set a repository path:
path.repo: ["/tmp"]
The test suite uses nose, to execute:
nosetests tests
aioes is offered under the BSD license.