如何在django Postgres表格文本区域字段中搜索多个单词?

如何在django Postgres表格文本区域字段中搜索多个单词?,django,postgresql,full-text-search,Django,Postgresql,Full Text Search,我正在创建一个招聘网站,我需要搜索一个关键技能文本区域字段,寻找多个值 我可能正在寻找一个具有良好Python的C++程序员,并在医疗数据科学家工作。

我正在创建一个招聘网站,我需要搜索一个关键技能文本区域字段,寻找多个值

我可能正在寻找一个具有良好Python的C++程序员,并在医疗数据科学家工作。 <我的搜索条目表单我会把C++ Python医疗数据科学家放进去。
可能有多达20名工作人员对一个包含数千条记录的数据库进行搜索。我需要知道使用digitalocean上托管的Django和postresql数据库执行此类搜索的最佳技术是什么。

您应该研究在postgres中使用JSONB存储。它是SQL数据库中的NOSQL

如何在DJANGO中访问

我建议在PostgreSQL全文搜索中使用Django

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

这是使用PostgreSQL在Django中执行的最简单的代码示例:

search_entry = 'c++ python healthcare data scientist'
Person.objects.filter(skills__search=search_entry)
对于在Django中使用PostgreSQL进行全文搜索的所有基本文档,您可以使用官方文档:

如果你想进一步深化,你可以阅读我写的一篇关于这个主题的文章:


谢谢,信息看起来很棒;我肯定会选择FTS路线,唯一的问题是,我不知道我是否偏离了轨道,但我正在考虑使用ArrayField作为搜索框。在您的简短示例中,我不确定是否应该在搜索表单中使用ArrayField,然后获取数据,将其拆分为单独的单词,并使用query=CVStore.objecs.filter(Q(key_skills___icontains(“python”)| Q(key_skills_icontains(“数据科学家”))构造一个查询等等。或者我是否应该创建一个文本字符串并将其传递到查询中?您可以使用SearchQuery将布尔逻辑应用于要搜索的文本。但我认为如果您接受此答案,然后创建一个更具体的问题并提供更多详细信息,会更好。