#28194: Add search rank cd function and normalization for Postgres full text
search
---------------------------------------------+------------------------
Reporter: Andrii Soldatenko | Owner: nobody
Type: Uncategorized | Status: new
Component: Uncategorized | Version: 1.11
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
---------------------------------------------+------------------------
It would be great to have cover density ranking for the given document
vector and query function `ts_rank_cd`. It helps to order search results
with different normalization strategies.
Also add `normalization` parameter option that specifies whether and how a
document's length should impact its rank.
>0 (the default) ignores the document length
>1 divides the rank by 1 + the logarithm of the document length
>2 divides the rank by the document length
>4 divides the rank by the mean harmonic distance between extents (this is
implemented only by ts_rank_cd)
>8 divides the rank by the number of unique words in document
>16 divides the rank by 1 + the logarithm of the number of unique words in
document
>32 divides the rank by itself + 1
Now you can do something like this:
{{{
class SearchRankCD(SearchRank):
function = 'ts_rank_cd'
def __init__(self, vector, query, normalization=0, **extra):
super(SearchRank, self).__init__(
vector, query, normalization, **extra)
query = SearchQuery('messenger')
Application.objects.annotate(
rank=SearchRankCD(
F('search_vector_title'), query,
normalization=2) # 2 divides the rank by the document length
).filter(search_vector_title=query).order_by('-rank')
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/28194>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/059.67311c5a813d5077386725ebcf281f61%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.