Django 全文搜索 – 快速、灵活且强大。只需纯 Python 代码,无需第三方应用程序。
您是否正在为 Django 支持的网站寻找高性能且易于使用的搜索后端?首先,这是您不应该使用的内容。奥德赛几句话 – Pixabay上我们已经看到了这一切:
通过 Django 的 ORM 进行本机 搜索 – 简单
Xapian与Djapian 结合 – Djapian 有很多 bug,并且不再维护。
Haystack 与Xapian 后端 – Haystack 实际上相当不错,但 Xapian 后端有问题,而且似乎没有维护。
Haystack 和完全基于 Python 的 Whoosh – 它可以工作,但 Whoosh 相当慢。而且,在 Whoosh 之上使用 Haystack 基本上没有任何优势。无论如何,这个解决方案对于 哈萨克斯坦手机号码列表 中等规模的博客来说应该没问题,但对于 Pixabay 来说太慢了。
Elasticsearch 通过 Haystack与elasticsearch-py 相结合 – 它可以工作,但是一些错误和搜索结果的微调(停用词、不同语言的词干等)需要大量侵入 Haystack 的 Elasticsearch 后端。这很快就变得比在没有 Haystack 的情况下使用 Elasticsearch 更加复杂。
使用抽象层(例如ElasticUtils 或elasticsearch-py)以更 Python 的方式与 Elasticsearch 进行通信并不会让事情变得更容易。抽象层需要一种特殊的语法,但仍然需要了解 Elasticsearch 的基础知识。
我们得出的结论是,没有理由不通过简单的基于 JSON 的请求直接查询 Elasticsearch 服务器。完全的灵活性和无依赖性——这就是我们最终的结果——从此幸福快乐。
注意:本教程的目的不是 准确展示如何
在 Django 站点上实现 Elasticsearch。我们将通过一个完整的工作示例 – 然而,Elasticsearch 提供了令人难以置信的大量功能,这里甚至不会提及。因此,将本教程作为如何通过简单的方式在 Django 和 Elasticsearch 之间进行通信的基本指南。Elasticsearch 网站包含完整的文档, 并且在线 有很多很棒的示例 ,可帮助您构建所需的任何类型的搜索。通过充分利用 Elasticsearch,您或许可以用它构建自己的“Google”。
安装Elasticsearch服务器
首先,安装 Java 并下载+解压 Elasticsearch (ES)。对于 Windows,您可 KH 列表 以将 ES 作为服务运行 – 或者您可以通过以下 shell 命令启动 ES 服务器(根据您的系统更改路径):
正确完成后,您可以在浏览器中调用以下 URL:
您现在正在运行 ES 服务器。对于部署,您可能需要调整 ES 配置“elasticsearch.yml”中的一些设置。例如,您可以启用 HTTP 身份验证 或更改 ES 正在侦听的端口。