Django - 使用 PostgreSQL 和 Elasticsearch 进行全文搜索

标签 django postgresql rest elasticsearch full-text-search

我有一个 DjangoDjango REST Framework 支持的 RESTful API(与 PostgreSQL 数据库后端对话),它支持在特定模型上进行过滤.

现在我想添加全文搜索功能。

是否可以使用 Elasticsearch 进行全文搜索,然后在这些搜索结果之上应用我现有的 API 过滤器?

最佳答案

我建议您考虑仅使用 PostgreSQL 来执行您要求的操作。

在我看来,这是最好的解决方案,因为您将直接在 PostgreSQL 中拥有数据和搜索索引,并且您不会被迫安装和维护其他软件(例如 Elasticsearch ) 并保持数据和索引同步。

这是执行 full-text search 所需的最简单的代码示例在带有 PostgreSQL 的 Django 中:

Entry.objects.filter(body_text__search='Cheese')

关于使用 full-text search 的所有基本文档在带有 PostgreSQL 的 Django 中,您可以使用官方文档:"Full text search "

如果您想进一步深入,可以阅读我写的关于该主题的文章:

"Full-Text Search in Django with PostgreSQL "

关于Django - 使用 PostgreSQL 和 Elasticsearch 进行全文搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50945141/

相关文章:

python - .aggregate() 中使用的 Django @property

jquery - 如何在返回的 AJAX 调用上使用 Django 模板标签?

python - 属性错误 : 'User_Profile' object has no attribute '__name__'

django - 使用 PostgreSQL Dockerize 我的 Django 应用程序,数据库意外启动和关闭

python - Django 管理多对多子集

mysql - 可移植的MongoDB和MySQL/PostgreSQL二进制文件

postgresql - 如何从包含 "CASE WHEN"语句的 Postgresql 查询中检索数据?

javascript - Express + node.js API 过滤

rest - org.springframework.http.MediaType 中的无效 token 字符 '/'

c# - 为什么我的 WebApi 收到响应状态代码 204 No Content?