#32492: Add django API for Postgres pg_trgm word_similarity, fuzzy full-text
search.
-----------------------------------------+------------------------
               Reporter:  Taneli         |          Owner:  nobody
                   Type:  Uncategorized  |         Status:  new
              Component:  Uncategorized  |        Version:  3.1
               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              |
-----------------------------------------+------------------------
 Use case: filter queryset by an inexact substring. For example, retrieve
 an object with the following headline ' Dogecoin is following bitcoin in
 its dramatic rise' when searching for 'dogge'.

 Currently it is possible to filter a queryset on the basis of trigram
 similarity between the search string and full text stored in a column.
  {{{#!python
 Author.objects.annotate(similarity=TrigramSimilarity('name',
 test),).filter(similarity__gt=0.3)
 }}}

 This is a wrapper around the '''similarity''' function of the
 '''pg_trgm''' extension. While it allows comparing full strings, i.e.
 searching for 'doge'  would find 'dogs' or 'dogge' it is useless for fuzzy
 searching of substrings.

 {{{
 SELECT similarity('dogge', 'doge');
 ---------
 0.57

 SELECT similarity('dogge', 'dogecoin is following bitcoin');
 ------------
 0.1
 }}}

 '''word_similarity''' does take into account the word boundaries

 {{{
 SELECT word_similarity('doge', 'dogecoin is following bitcoin');
 --------------
 0.5
 }}}

 Adding a django API to '''word_similarity''' would allow for better fuzzy
 fulltext search without a need to use either raw SQL or external tools
 like elasticsearch.

-- 
Ticket URL: <https://code.djangoproject.com/ticket/32492>
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/050.49cbc89f33aa2fa22e1752468f4e6382%40djangoproject.com.

Reply via email to