* Separated logic for extracting indexable content
* Docs edits
* Readability improvements
* Simplify/deduplicate indexing code
* Simplify search code
Pulled in some code that will be included in a future Django release
(query.py)
* Reword a limitation
* Fix typo in docstring
* Raise a warning when Boost() is used in PostgreSQL search backend
* Add note mentioning that RawSearchQuery can be replaced in Django 3.1
* Add comment mentioning that we can replace query.py if Django PR merged
We have to run python manage.py migrate once, in order to create the necessary tables for the postgres search backend.
Otherwise we get an error, as the insert in the table is not possible.
* Adds PostgreSQL search backend.
* Isort nitpicks.
* Fixes PostgreSQL versions incompatibilities.
* Uses Django lru_cache instead of building our own.
* Fixes PostgreSQL search index on some empty vector & query cases.
* Never sets the PostgreSQL search vector to NULL.
* Simplification + removes caching on two fast enough functions.
* Rewrites stale entries deletion to use the ORM.