#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 django-updates+unsubscr...@googlegroups.com. To post to this group, send email to django-updates@googlegroups.com. 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.