我有一个 Django
和 Django 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 "
如果您想进一步深入,可以阅读我写的关于该主题的文章:
关于Django - 使用 PostgreSQL 和 Elasticsearch 进行全文搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50945141/