Skip to main content

Extends the official Elasticsearch Python API adding Tornado AsyncHTTPClient support

Project description

Extends the official Elasticsearch Python API adding Tornado AsyncHTTPClient support.

Version Downloads License

Installation

tornado_elasticsearch is available on the Python Package Index and can be installed using pip or easy_install:

pip install tornado_elasticsearch

Example Request Handlers

from tornado import gen
from tornado import web
from tornado_elasticsearch import AsyncElasticsearch
import uuid

class Example(web.RequestHandler):

    def initialize(self):
        self.es = AsyncElasticsearch()

    @web.asynchronous
    @gen.engine
    def delete(self, *args, **kwargs):
        result = yield self.es.delete(index='test-index', doc_type='tweet',
                                      id=self.get_argument('id'))
        self.finish(result)

    @web.asynchronous
    @gen.engine
    def get(self, *args, **kwargs):
        if self.get_argument('id', None):
            result = yield self.es.get(index='test-index', doc_type='tweet',
                                       id=self.get_argument('id'))
        else:
            result = yield self.es.search(index='test-index')
        self.finish(result)

    @web.asynchronous
    @gen.engine
    def post(self, *args, **kwargs):
        doc = {
            'author': self.get_current_user() or 'Unknown',
            'text': self.get_argument('text'),
            'timestamp': datetime.datetime.now()
        }
        result = yield self.es.index(index='test-index',
                                     doc_type='tweet',
                                     body=doc,
                                     id=str(uuid.uuid4()))
        self.finish(result)


class Info(web.RequestHandler):

    @web.asynchronous
    @gen.engine
    def get(self, *args, **kwargs):
        es = AsyncElasticsearch()
        info = yield es.info()
        self.finish(info)

Version History

  • 0.3.0: Bugfix: Add body to log_request_fail call (#1)

  • 0.2.0: Bugfix: force method to POST if GET and body passed

  • 0.1.0: Initial version

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

tornado_elasticsearch-0.4.0.tar.gz (10.3 kB view hashes)

Uploaded Source

Built Distribution

tornado_elasticsearch-0.4.0-py2-none-any.whl (11.8 kB view hashes)

Uploaded Python 2

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