It appeared than GIN index sometimes lose results if simultaneously:
1 if query operand contains weight marks
2 if weight-marked operand is negated by ! operator
3 if there are only logical (not phrase) operators from this negation towards the root of query tree.
e.g. '!crew:A'::tsquery refuse to find 'crew:BCD'::tsvector
Seems it is in all versions of PG.
The patch is intended to deal with the issue. Also it contains tests for these rare condition.
Pavel Borisov.
pgsql-hackers by date:
Соглашаюсь с условиями обработки персональных данных