Search Options in Django
2020-09-19, 12:35–13:15 (Europe/Lisbon), Virtual

I like websites with search bars. If the search function works well, I can enter a few words and get a list of results, with the things that interest me at the top. Whether you use it as a help system or for product information, search functionality can add a lot of value to a Django application. But implementing proper search functionality is not easy. Django offers multiple ways to implement search functionality, each with its advantages and disadvantages.
This talk will give you an overview of the different ways in which you can implement search functionality in Django. We will look at the full-text search options that come with databases and the use of a dedicated search engine like Elastic Search or Postgres. Along the way, you will learn about the different ways in which you can index your data to learn how to evaluate your search results.

We will look at some different search options in Django and see when each option is the most useful.
First we will see why you should consider fulltext search in your application and the difference in text search with SQL.
Then, we look at fulltext search with Postgresql and Django. We look at different ways to search and rank documents and their performance implications.
In the next step, we look at searching in Django with Elasticsearch.
We close with short comparisons of the pros and cons of the different search options.

See also: slides

I am a software engineer and project manager from Munich. I like simple, working software and have used Python since 2009.