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": {}
}
})
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd54042bbe6fdf43f39478e21f46c2fb15a17e365305f10923b5863fb12eda04
|
|
| MD5 |
a45389633381ab2f27eee454f1e915c0
|
|
| BLAKE2b-256 |
1b695c0ed8603a4b8373060d6ba9007379d2021f1ba83fd1f2e13a4eebe7f4ab
|