本文介紹 django.contrib.postgres.search.SearchRank
的用法。
聲明
class SearchRank(vector, query, weights=None, normalization=None, cover_density=False)
到目前為止,我們已經返回了向量和查詢之間可能匹配的結果。您可能希望按某種相關性對結果進行排序。 PostgreSQL 提供了一個排名函數,它考慮了查詢詞在文檔中出現的頻率、詞在文檔中的接近程度以及文檔中它們出現的位置的重要性。比賽越好,排名的值就越高。按相關性排序:
>>> from django.contrib.postgres.search import SearchQuery, SearchRank, SearchVector
>>> vector = SearchVector('body_text')
>>> query = SearchQuery('cheese')
>>> Entry.objects.annotate(rank=SearchRank(vector, query)).order_by('-rank')
[<Entry: Cheese on Toast recipes>, <Entry: Pizza recipes>]
有關 weights
參數的說明,請參閱加權查詢。
將cover_density
參數設置為True
以啟用覆蓋密度排名,即考慮匹配查詢詞的接近度。
為 normalization
參數提供一個整數以控製等級歸一化。此整數是位掩碼,因此您可以組合多種行為:
>>> from django.db.models import Value
>>> Entry.objects.annotate(
... rank=SearchRank(
... vector,
... query,
... normalization=Value(2).bitor(Value(4)),
... )
... )
PostgreSQL 文檔包含有關 different rank normalization options 的更多詳細信息。
相關用法
- Python Django SearchHeadline用法及代碼示例
- Python Django SearchVectorField用法及代碼示例
- Python Django SearchQuery用法及代碼示例
- Python Django SearchVector用法及代碼示例
- Python Seaborn.barplot()用法及代碼示例
- Python Tableau Server用法及代碼示例
- Python Set issubset()用法及代碼示例
- Python Set issuperset()用法及代碼示例
- Python Pandas Series.cumsum()用法及代碼示例
- Python Pandas Series.cov()用法及代碼示例
- Python Set difference_update()用法及代碼示例
- Python Django SelectDateWidget.months用法及代碼示例
- Python Set union()用法及代碼示例
- Python Set pop()用法及代碼示例
- Python Django SelectDateWidget.empty_label用法及代碼示例
- Python Pandas Series.astype()用法及代碼示例
- Python Pandas Series.nonzero()用法及代碼示例
- Python Pandas Series.cummin()用法及代碼示例
- Python Set add()用法及代碼示例
- Python Set clear()用法及代碼示例
- Python Set isdisjoint()用法及代碼示例
- Python Set intersection_update()用法及代碼示例
- Python Set symmetric_difference()用法及代碼示例
- Python Pandas Series.mad()用法及代碼示例
- Python Set symmetric_difference_update()用法及代碼示例
注:本文由純淨天空篩選整理自djangoproject.com大神的英文原創作品 django.contrib.postgres.search.SearchRank。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。