通过 ZomboDB Postgres 扩展轻松将 Django 与 Elasticsearch 集成
项目描述
通过ZomboDB Postgres 扩展轻松将 Django 与 Elasticsearch 集成。感谢 ZomboDB,您的 Django 模型在每次交易后都与 Elasticsearch 同步!搜索也非常简单:您只需调用查询集上的一种搜索方法即可进行 Elasticsearch 查询。再简单不过了!
文档
要求
蟒蛇:3.5、3.6、3.7
Django:2.0、2.1、2.2
Postgres和Elasticsearch:与ZomboDB 当前要求相同
快速开始
安装 ZomboDB(此处的说明)
安装 django-zombodb:
pip install django-zombodb
将SearchQuerySet和ZomboDBIndex添加到您的模型中:
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',
]),
]
进行迁移:
python manage.py makemigrations
添加django_zombodb.operations.ZomboDBExtension()作为您刚刚创建的迁移的第一个操作:
import django_zombodb.operations
class Migration(migrations.Migration):
dependencies = [
('restaurants', '0001_initial'),
]
operations = [
django_zombodb.operations.ZomboDBExtension(), # <<< here
]
运行迁移(Postgres 用户必须是 SUPERUSER 才能创建 ZomboDB 扩展):
python manage.py migrate
完毕!现在您可以直接从您的模型中进行 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。如果您发现或认为您发现了漏洞,请通过管理员AT vinta.com.br 联系
请避免在 GitHub 或任何其他公共网站上披露任何安全问题。我们将努力迅速解决任何可能存在的漏洞,并向记者表示赞赏(如果需要)。
商业支持
该项目由Vinta Software和其他贡献者维护。我们一直在寻找令人兴奋的工作,所以如果您需要任何商业支持,请随时联系:联系@vinta 。com 。br
更改日志
0.3.0 (2019-07-18)
通过ZomboDBIndex上的field_mapping参数支持自定义 Elasticsearch 映射。
支持限制搜索方法的参数。
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-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 13170fb63897e93141d71217f21263dec896c3aecb3ae2f0ed06a7e6a53058ed |
|
MD5 | 778bec5e8a14bde599f5fd6430e90079 |
|
布莱克2-256 | 75540f561c00c5a1fe5fefe856b241fd1f62151283530fce3b25d8faac800cb0 |