通过zombodb postgres扩展与elasticsearch的轻松django集成
django-zombodb的Python项目详细描述
通过ZomboDBpostgres扩展与elasticsearch轻松集成。 感谢zombodb,您的django模型在每次事务后都与elasticsearch同步!搜索也很简单:您可以 ElasticSearch只需调用QuerySet上的一个搜索方法即可进行查询。再简单不过了!
文档
要求
- python:3.5、3.6、3.7
- django:2.0、2.1、2.2
- postgres和elasticsearch:与ZomboDB current requirements 相同
快速启动
- 安装zombodb(说明here)
- 安装django zombodb:
pip install django-zombodb
- 将SearchQuerySet和ZomboDBIndex添加到模型:
fromdjango_zombodb.indexesimportZomboDBIndexfromdjango_zombodb.querysetsimportSearchQuerySetclassRestaurant(models.Model):name=models.TextField()objects=models.Manager.from_queryset(SearchQuerySet)()classMeta:indexes=[ZomboDBIndex(fields=['name',]),]
- 进行迁移:
python manage.py makemigrations
- 添加django_zombodb.operations.ZomboDBExtension()作为您刚刚创建的迁移的第一个操作:
importdjango_zombodb.operationsclassMigration(migrations.Migration):dependencies=[('restaurants','0001_initial'),]operations=[django_zombodb.operations.ZomboDBExtension(),# <<< here]
- 运行迁移(postgres用户必须是超级用户才能创建zombodb扩展):
python manage.py migrate
- 完成!现在,您可以直接从模型中进行ElasticSearch查询:
Restaurant.objects.filter(is_open=True).query_string_search("brazil* AND coffee~")
运行测试
您需要在默认端口上运行elasticsearch和postgres实例。另外,还需要安装zombodb。那就做:
python runtests.py
安全性
请检查SECURITY.rst。 如果发现或认为发现漏洞,请通过vinta.com上的admin与我们联系。br
请避免在github或任何其他公共网站上披露任何安全问题。我们将努力迅速解决任何可能的漏洞,并给予记者信任(如果需要的话)。
商业支持
这个项目由Vinta Software和其他贡献者维护。我们一直在寻找令人兴奋的工作,因此如果您需要任何商业支持,请随时联系:contact@vinta.com.br
更改日志
0.3.0(2019-07-18)
- 通过ZomboDBIndex上的field_mapping参数支持自定义ElasticSearch映射。
- 支持搜索方法上的limit参数。
0.2.1(2019-06-13)
- 放弃了对Python3.4的支持。
- 将缺少的导入添加到文档。
0.2.0(2019-03-01)
- 已从ZomboDBIndex中删除参数url。这简化了对多个部署环境(本地、登台、生产)的支持,因为ElasticSearchURL不会复制到内部迁移代码中(请参见Issue #17)。
0.1.0(2019-02-01)
- pypi上的第一个版本。