diff options
author | Tusooa Zhu <tusooa@kazv.moe> | 2021-08-27 21:43:50 -0400 |
---|---|---|
committer | Tusooa Zhu <tusooa@kazv.moe> | 2021-08-27 22:27:17 -0400 |
commit | a9984c6da78f27d56c67e7fcec12dbad0a1ebc67 (patch) | |
tree | c13e9f3fa9face36fd7dc3244306eb3d5a6ecaea /CHANGELOG.md | |
parent | 84ec0fbeaadc8bdbce256212258a932530088346 (diff) | |
download | pleroma-a9984c6da78f27d56c67e7fcec12dbad0a1ebc67.tar.gz |
Make activity search properly use GIN indexes
The original approach to search in GIN indexes is to use
`to_tsvector(text)` in the WHERE clause of the query. According to
postgres docs [pdoc], this method does not make use of the index,
while `to_tsvector(config, text)` does. This commit changed the
query to use the two-argument `to_tsvector()`.
[pdoc]: https://www.postgresql.org/docs/12/textsearch-tables.html
To obtain the search config in use, we make a query to the db first.
The `::regconfig::oid` hack is needed because Postgrex does not support
regconfig type directly [postgrexbug]. I use the conversion from and to
`oid` instead of `text` because I tested in the actual DB and querying
using the conversion via `text` is slow just as the one-argument
`to_tsvector()` variant.
[postgrexbug]: https://github.com/elixir-ecto/postgrex/issues/502
BUG: https://git.pleroma.social/pleroma/pleroma/-/issues/2758
Diffstat (limited to 'CHANGELOG.md')
0 files changed, 0 insertions, 0 deletions