Skip to main content

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

https://badges.gitter.im/marcosgabarda/django-gum.svg https://badge.fury.io/py/django-gum.svg https://img.shields.io/pypi/dm/django-gum.svg Documentation Status https://travis-ci.org/marcosgabarda/django-gum.svg?branch=master https://coveralls.io/repos/github/marcosgabarda/django-gum/badge.svg?branch=master

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": {}
    }
})

Download files

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

Source Distribution

django-gum-2.0.2.tar.gz (20.6 kB view details)

Uploaded Source

File details

Details for the file django-gum-2.0.2.tar.gz.

File metadata

  • Download URL: django-gum-2.0.2.tar.gz
  • Upload date:
  • Size: 20.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for django-gum-2.0.2.tar.gz
Algorithm Hash digest
SHA256 dd54042bbe6fdf43f39478e21f46c2fb15a17e365305f10923b5863fb12eda04
MD5 a45389633381ab2f27eee454f1e915c0
BLAKE2b-256 1b695c0ed8603a4b8373060d6ba9007379d2021f1ba83fd1f2e13a4eebe7f4ab

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.0.2 This release

1 file

2.0.1

1 file

2.0

1 file

1.2

1 file

1.1.1

2 files

1.1

2 files

1.0.1

1 file

1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page