This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Elasticsearch client with Django support.

Project Description

Gum is a Django app for integrate Elasticsearch 1.x with Django. You can find documentation at https://django-gum.readthedocs.org.

Quick start

1 Install using pip:

pip install django-gum

2 Add “gum” to your INSTALLED_APPS settings like this:

INSTALLED_APPS += ('gum',)

3 Add Elasticsearch configuration to your settings like this:

GUM_ELASTICSEARCH_URLS = ["http://127.0.0.1:9200/"]
GUM_ELASTICSEARCH_INDEX = ".gum-tests"

List of available configuration variables:

  • GUM_DEBUG (boolean)
  • GUM_USE_CELERY (boolean)
  • GUM_ELASTICSEARCH_URLS (list)
  • GUM_ELASTICSEARCH_INDEX (string)

4 Create an index.py in your app, with a content like this:

from gum.indexer import MappingType, indexer

class PostMappingType(MappingType):

    def document(self, instance):
        tags_text = " ".join(map(lambda x: x.label, instance.tags.all()))
        return {
            "title": instance.title,
            "content": instance.content,
            "text": "{} {} {}".format(instance.title, instance.content, tags_text)
        }

    def mapping(self):
        return {
            "properties": {
                "title": {
                    "type": "string",
                    "store": True,
                },
                "content": {
                    "type": "string",
                    "store": True,
                },
                "text": {
                    "type": "string",
                    "store": True,
                }
            }
        }

indexer.register(Post, PostMappingType)

5 Update Elasticsearch index:

./manage.py gum --update-index

You can specify the models you want to index:

./manage.py gum --update-index blog.Post

Searching

You can perform Elasticsearch searches (accessing search method) using elasticsearch model attribute:

response = Post.elasticsearch.search(body={
    "query": {
        "match_all": {}
    }
})
Release History

Release History

This version
History Node

2.0.2

History Node

2.0.1

History Node

2.0

History Node

1.2

History Node

1.1.1

History Node

1.1

History Node

1.0.1

History Node

1.0

History Node

1.0rc1

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
django-gum-2.0.2.tar.gz (20.6 kB) Copy SHA256 Checksum SHA256 Source Dec 15, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting