如何在Django Postgres表textarea字段中搜索多个单词?

时间:2018-09-18 17:00:23

标签: django postgresql full-text-search

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

例如我可能正在寻找一个具有良好python的C ++程序员,并且曾在医疗保健数据科学家中工作。

所以我的搜索输入表单将放置c ++ python医疗保健数据科学家。

最多有20名员工在具有数千条记录的数据库中执行搜索。我需要知道什么是最好的技术,以使用digitalocean上托管的Django和postresql数据库执行这种类型的搜索。

2 个答案:

答案 0 :(得分:1)

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

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

这是最简单的代码示例,您必须在PostgreSQL和Django中执行full-text search

search_entry = 'c++ python healthcare data scientist'
Person.objects.filter(skills__search=search_entry)

对于在Django和PostgreSQL上使用全文搜索的所有基本文档,您可以使用官方文档:Full text search

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

Full-Text Search in Django with PostgreSQL

答案 1 :(得分:0)

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

https://www.postgresql.org/docs/9.6/static/functions-json.html

如何在DJANGO中访问 https://docs.djangoproject.com/en/2.1/ref/contrib/postgres/fields/#querying-jsonfield