首页 > 解决方案 > 带有多个单词的 Django 全文搜索

问题描述

这并不是一个复杂的问题(据我所知)。

我知道在 MongoDB 中你可以输入一个字符串,它会自动标记化并使用该字符串作为查询执行全文搜索。

但是,在 Django 中,我还没有找到类似的功能,而且我看到的所有示例都做了一些类似的事情:

from django.contrib.postgres.search import SearchQuery
query = SearchQuery('foo')

人们只使用一个词的原因是因为SearchQuery 只能使用一个词吗?

我想知道的是如何使用多个单词进行全文搜索。是不是像做一样容易

from django.contrib.postgres.search import SearchQuery
query = SearchQuery('foo and also bar')

? 还是需要比这更复杂?

标签: pythondjangopostgresql

解决方案


要使用 Django 执行全文搜索,您必须结合使用GiN indexwith SearchVector
这是我在某处使用的完整工作示例。它也适用于查询中的 2 个以上单词并在 3 个字段中搜索它们。


推荐阅读