python – 与django中的elasticsearch进行交互

前端之家收集整理的这篇文章主要介绍了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相关文章