python – 与django中的elasticsearch进行交互

我想将elasticsearch用于一个新项目,从我的研究中,似乎有3个可行的解决方案:

>不要使用包装器并直接与elasticsearch进行通信
>使用elasticsearch-py
>使用elasticsearch-dsl-py

我喜欢解决方案1,因为它不需要依赖关系,我可以专注于学习本机语法/ api而不是2或3中的包装器.是否有任何令人信服的理由使用2或3超过1?

更新

我最终使用elasticsearch-py,因为它提供了连接池和持久性等各种好处.我发现elasticsearch-dsl-py太抽象和冗长

最佳答案
我建议当正式的Python客户端可用时,没有理由直接与Elasticsearch交谈. Python客户端为您做了很多繁重的工作 – 否则您将花费​​大量时间/精力将Python数据转换为ES,反之亦然.

关于elasticsearch-dsl-py和elasticsearch-py之间的选择:

elasticsearch-dsl-py只是Query DSL的包装(加上其他一些东西).它不提供对整个Elasticsearch API的访问(例如,Cluster API,Indices API,Bulk API等).它在文档中说:

To use the other Elasticsearch APIs (eg. cluster health) just use the
underlying client.

您很可能需要在任何大型应用程序中使用这两个库. elasticsearch-dsl-py本身使用elasticsearch-py.

我同意你对Haystack的评论 – 它的Elasticsearch后端还有很多不足之处.

相关文章

Python中的函数(二) 在上一篇文章中提到了Python中函数的定...
Python中的字符串 可能大多数人在学习C语言的时候,最先接触...
Python 面向对象编程(一) 虽然Python是解释性语言,但是它...
Python面向对象编程(二) 在前面一篇文章中谈到了类的基本定...
Python中的函数(一) 接触过C语言的朋友对函数这个词肯定非...
在windows下如何快速搭建web.py开发框架 用Python进行web开发...