Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Extends the official Elasticsearch Python API adding Tornado AsyncHTTPClient support

License

Notifications You must be signed in to change notification settings

gmr/tornado-elasticsearch

Repository files navigation

tornado_elasticsearch

Extends the official Elasticsearch Python API adding Tornado AsyncHTTPClient support.

Version 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.5.0: - Bugfixes:

    • HTTP Auth
    • Add timeout support
    • Allow scroll to use post, since scroll_id can be too long
    • Fix yield issue
    • Add max_clients to AsyncElasticSearch constructor
    • Added get_alias
    • Added get_mapping
    • Add cluster health
  • 0.4.0: Bugfix: Python3 decoding issues

  • 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

About

Extends the official Elasticsearch Python API adding Tornado AsyncHTTPClient support

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 6

Languages

AltStyle によって変換されたページ (->オリジナル) /