当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Django SearchQuery用法及代码示例


本文介绍 django.contrib.postgres.search.SearchQuery 的用法。

声明

class SearchQuery(value, config=None, search_type='plain')

SearchQuery 将用户提供的术语转换为搜索查询对象,数据库将其与搜索向量进行比较。默认情况下,用户提供的所有词都会通过词干算法,然后它会查找所有结果词的匹配项。

如果 search_type'plain' (这是默认设置),则这些术语将被视为单独的关键字。如果 search_type'phrase' ,则将术语视为单个短语。如果 search_type'raw' ,那么您可以提供带有术语和运算符的格式化搜索查询。如果 search_type'websearch' ,那么您可以提供格式化的搜索查询,类似于网络搜索引擎使用的查询。 'websearch' 要求 PostgreSQL ≥ 11。阅读 PostgreSQL 的 Full Text Search docs 以了解差异和语法。例子:

>>> from django.contrib.postgres.search import SearchQuery
>>> SearchQuery('red tomato')  # two keywords
>>> SearchQuery('tomato red')  # same results as above
>>> SearchQuery('red tomato', search_type='phrase')  # a phrase
>>> SearchQuery('tomato red', search_type='phrase')  # a different phrase
>>> SearchQuery("'tomato' & ('red' | 'green')", search_type='raw')  # boolean operators
>>> SearchQuery("'tomato' ('red' OR 'green')", search_type='websearch')  # websearch operators

SearchQuery 术语可以在逻辑上组合以提供更大的灵活性:

>>> from django.contrib.postgres.search import SearchQuery
>>> SearchQuery('meat') & SearchQuery('cheese')  # AND
>>> SearchQuery('meat') | SearchQuery('cheese')  # OR
>>> ~SearchQuery('meat')  # NOT

有关 config 参数的说明,请参阅更改搜索配置。

相关用法


注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.contrib.postgres.search.SearchQuery。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。