當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。