本文介绍 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。