Easy Django integration with Elasticsearch through ZomboDB Postgres Extension
Project description
Easy Django integration with Elasticsearch through ZomboDB Postgres Extension. Thanks to ZomboDB, your Django models are synced with Elasticsearch after every transaction! Searching is also very simple: you can make Elasticsearch queries by just calling one of the search methods on your querysets. Couldn’t be easier!
Documentation
The full documentation is at https://django-zombodb.readthedocs.io.
Requirements
Python: 3.4, 3.5, 3.6, 3.7
Django: 2.0, 2.1
Quickstart
Install ZomboDB (instructions here)
Install django-zombodb:
pip install django-zombodb
Add the SearchQuerySet and the ZomboDBIndex to your model:
from django_zombodb.indexes import ZomboDBIndex
from django_zombodb.querysets import SearchQuerySet
class Restaurant(models.Model):
name = models.TextField()
objects = models.Manager.from_queryset(SearchQuerySet)()
class Meta:
indexes = [
ZomboDBIndex(fields=[
'name',
]),
]
Make the migrations:
python manage.py makemigrations
Add django_zombodb.operations.ZomboDBExtension() as the first operation of the migration you’ve just created:
import django_zombodb.operations
class Migration(migrations.Migration):
dependencies = [
('restaurants', '0001_initial'),
]
operations = [
django_zombodb.operations.ZomboDBExtension(), # <<< here
]
Run the migrations (Postgres user must be SUPERUSER to create the ZomboDB extension):
python manage.py migrate
Done! Now you can make Elasticsearch queries directly from your model:
Restaurant.objects.filter(is_open=True).query_string_search("brazil* AND coffee~")
Full Example
Check https://github.com/vintasoftware/django-zombodb/tree/master/example
Running Tests
You need to have Elasticsearch and Postgres instances running on default ports. Then just do:
python runtests.py
Change Log
0.1.0 (2019-02-01)
First release on PyPI.
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
Built Distribution
Hashes for django_zombodb-0.1.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c26aca29edd440ffc7bc9e72da1fa1e69bf4905b1d021e9e9e7b104c0afd04ca |
|
MD5 | 8e2752f77fdf6681b9f00b2d775cb52a |
|
BLAKE2b-256 | 4749bec9d3fef3b0239f5f543f303a8c8d74489dbb0718c53631eb282c97e135 |