Полнотекстовый поиск в 8.3
От | Andrey N. Oktyabrski |
---|---|
Тема | Полнотекстовый поиск в 8.3 |
Дата | |
Msg-id | 492791AF.7060000@antora.ru обсуждение исходный текст |
Ответы |
Re: Полнотекстовый поиск в 8.3
|
Список | pgsql-ru-general |
Здравствуйте. Обнаружил пренеприятнейшую вещь: cms1=# EXPLAIN ANALYZE SELECT id FROM _fts_text fts WHERE fts.vector @@@ to_tsquery('некоторые | слова'); QUERY PLAN ------------------------------------------------------- Bitmap Heap Scan on _fts_text fts (cost=273.04..1261.39 rows=274 width=4) (actual time=14.164..6063.459 rows=26651 loops=1) Filter: (vector @@@ to_tsquery('некоторые | слова'::text)) -> Bitmap Index Scan on fts_text_vector_idx (cost=0.00..272.97 rows=274 width=0) (actual time=11.314..11.314 rows=27472 loops=1) Index Cond: (vector @@@ to_tsquery('некоторые | слова'::text)) Total runtime: 6074.753 ms (5 rows) cms1=# EXPLAIN ANALYZE SELECT id FROM _fts_text fts WHERE fts.vector @@ to_tsquery('некоторые | слова'); QUERY PLAN ------------------------------------------------------- Bitmap Heap Scan on _fts_text fts (cost=273.04..1261.39 rows=274 width=4) (actual time=18.213..845.861 rows=26651 loops=1) Recheck Cond: (vector @@ to_tsquery('некоторые | слова'::text)) -> Bitmap Index Scan on fts_text_vector_idx (cost=0.00..272.97 rows=274 width=0) (actual time=14.879..14.879 rows=27472 loops=1) Index Cond: (vector @@ to_tsquery('некоторые | слова'::text)) Total runtime: 854.274 ms (5 rows) Планы отличаются только одной строчкой - в одном Filter, в другом Recheck Cond. Вот, собственно, почему они отличаются? Что можно сделать, чтобы три собаки работали если не так же быстро, то хотя бы не на порядок медленнее?
В списке pgsql-ru-general по дате отправления: