跳转到主要内容

通过ZomboDB Postgres扩展轻松集成Elasticsearch的Django

项目描述

PyPI Status Build Status Documentation Status Coverage Status GitHub

通过ZomboDB Postgres扩展轻松集成Elasticsearch的Django。感谢ZomboDB,每次事务后,您的Django模型都会与Elasticsearch同步!搜索也非常简单:您只需通过调用您的查询集上的其中一个搜索方法即可执行Elasticsearch查询。再简单不过了!

文档

完整文档在https://django-zombodb.readthedocs.io

要求

  • Python: 3.5, 3.6, 3.7

  • Django: 2.0, 2.1, 2.2

  • PostgresElasticsearch:与ZomboDB当前要求相同

快速入门

  1. 安装ZomboDB(说明在此

  2. 安装django-zombodb

pip install django-zombodb
  1. SearchQuerySetZomboDBIndex添加到您的模型中

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',
            ]),
        ]
  1. 创建迁移

python manage.py makemigrations
  1. django_zombodb.operations.ZomboDBExtension()作为您刚刚创建的迁移的第一个操作

import django_zombodb.operations

class Migration(migrations.Migration):

    dependencies = [
        ('restaurants', '0001_initial'),
    ]

    operations = [
        django_zombodb.operations.ZomboDBExtension(),  # <<< here
    ]
  1. 运行迁移(Postgres用户必须是SUPERUSER以创建ZomboDB扩展)

python manage.py migrate
  1. 完成!现在您可以直接从模型中执行Elasticsearch查询

Restaurant.objects.filter(is_open=True).query_string_search("brazil* AND coffee~")

完整示例

查看https://github.com/vintasoftware/django-zombodb/tree/master/example

运行测试

您需要确保Elasticsearch和Postgres实例在默认端口上运行。另外,您需要安装ZomboDB。然后只需执行以下操作:

python runtests.py

安全

请查阅SECURITY.rst。如果您发现或认为发现了漏洞,请通过admin AT vinta.com.br与我们联系。

请避免在GitHub或其他公共网站上披露任何安全问题。我们将迅速解决任何可能存在的漏洞,并给予报告者(如果愿意)相应的信用。

商业支持

本项目由Vinta软件和其他贡献者维护。我们一直在寻找令人兴奋的工作,如果您需要任何商业支持,请随时与我们联系:contact@vinta.com.br

变更日志

0.3.0 (2019-07-18)

  • 通过field_mapping参数在ZomboDBIndex上支持自定义Elasticsearch映射。

  • 支持搜索方法上的limit参数。

0.2.1 (2019-06-13)

  • 已移除对Python 3.4的支持。

  • 添加了文档中缺失的导入。

0.2.0 (2019-03-01)

  • ZomboDBIndex中移除了url参数。这简化了多个部署环境(本地、预发布、生产)的支持,因为ElasticSearch URL不会复制到迁移代码内部(参见问题#17)。

0.1.0 (2019-02-01)

  • 首次发布于PyPI。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源代码分发

django-zombodb-0.3.0.tar.gz (12.8 kB 查看哈希值)

上传时间: 源代码

构建分发

django_zombodb-0.3.0-py2.py3-none-any.whl (13.6 kB 查看哈希值)

上传时间: Python 2 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面