Adding full-text search to your blog
Now, you will add search capabilities to your blog. The Django ORM allows you to perform simple matching operations using, for example, the contains
filter (or its case-insensitive version, icontains
). You can use the following query to find posts that contain the word framework
in their body:
from blog.models import Post Post.objects.filter(body__contains='framework')
However, if you want to perform complex search lookups, retrieving results by similarity or by weighting terms, you will need to use a full-text search engine.
Django provides a powerful search functionality built on top of PostgreSQL full-text search features. The django.contrib.postgres
module provides functionalities offered by PostgreSQL that are not shared by the other databases that Django supports. You can learn about PostgreSQL full-text search at https://www.postgresql.org/docs/10/static/textsearch.html.
Note
Although Django is a database-agnostic web framework, it provides a module...