|
| 1 | +-- without indexes |
| 2 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ 'wr|qh'; |
| 3 | + count |
| 4 | +------- |
| 5 | + 158 |
| 6 | +(1 row) |
| 7 | + |
| 8 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ 'wr&qh'; |
| 9 | + count |
| 10 | +------- |
| 11 | + 17 |
| 12 | +(1 row) |
| 13 | + |
| 14 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ 'eq&yt'; |
| 15 | + count |
| 16 | +------- |
| 17 | + 6 |
| 18 | +(1 row) |
| 19 | + |
| 20 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ 'eq|yt'; |
| 21 | + count |
| 22 | +------- |
| 23 | + 98 |
| 24 | +(1 row) |
| 25 | + |
| 26 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ '(eq&yt)|(wr&qh)'; |
| 27 | + count |
| 28 | +------- |
| 29 | + 23 |
| 30 | +(1 row) |
| 31 | + |
| 32 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ '(eq|yt)&(wr|qh)'; |
| 33 | + count |
| 34 | +------- |
| 35 | + 39 |
| 36 | +(1 row) |
| 37 | + |
| 38 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ 'w:*|q:*'; |
| 39 | + count |
| 40 | +------- |
| 41 | + 494 |
| 42 | +(1 row) |
| 43 | + |
| 44 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ any ('{wr,qh}'); |
| 45 | + count |
| 46 | +------- |
| 47 | + 158 |
| 48 | +(1 row) |
| 49 | + |
| 50 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ 'no_such_lexeme'; |
| 51 | + count |
| 52 | +------- |
| 53 | + 0 |
| 54 | +(1 row) |
| 55 | + |
| 56 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ '!no_such_lexeme'; |
| 57 | + count |
| 58 | +------- |
| 59 | + 508 |
| 60 | +(1 row) |
| 61 | +CREATE INDEX wowidx ON test_tsvector2 USING gin (a); |
| 62 | +SET enable_seqscan=OFF; |
| 63 | +-- GIN only supports bitmapscan, so no need to test plain indexscan |
| 64 | +explain (costs off) SELECT count(*) FROM test_tsvector2 WHERE a @@ 'wr|qh'; |
| 65 | + QUERY PLAN |
| 66 | +------------------------------------------------------------- |
| 67 | + Aggregate |
| 68 | + -> Bitmap Heap Scan on test_tsvector2 |
| 69 | + Recheck Cond: (a @@ '''wr'' | ''qh'''::tsquery) |
| 70 | + -> Bitmap Index Scan on wowidx |
| 71 | + Index Cond: (a @@ '''wr'' | ''qh'''::tsquery) |
| 72 | +(5 rows) |
| 73 | + |
| 74 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ 'wr|qh'; |
| 75 | + count |
| 76 | +------- |
| 77 | + 158 |
| 78 | +(1 row) |
| 79 | + |
| 80 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ 'wr&qh'; |
| 81 | + count |
| 82 | +------- |
| 83 | + 17 |
| 84 | +(1 row) |
| 85 | + |
| 86 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ 'eq&yt'; |
| 87 | + count |
| 88 | +------- |
| 89 | + 6 |
| 90 | +(1 row) |
| 91 | + |
| 92 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ 'eq|yt'; |
| 93 | + count |
| 94 | +------- |
| 95 | + 98 |
| 96 | +(1 row) |
| 97 | + |
| 98 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ '(eq&yt)|(wr&qh)'; |
| 99 | + count |
| 100 | +------- |
| 101 | + 23 |
| 102 | +(1 row) |
| 103 | + |
| 104 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ '(eq|yt)&(wr|qh)'; |
| 105 | + count |
| 106 | +------- |
| 107 | + 39 |
| 108 | +(1 row) |
| 109 | + |
| 110 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ 'w:*|q:*'; |
| 111 | + count |
| 112 | +------- |
| 113 | + 494 |
| 114 | +(1 row) |
| 115 | + |
| 116 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ any ('{wr,qh}'); |
| 117 | + count |
| 118 | +------- |
| 119 | + 158 |
| 120 | +(1 row) |
| 121 | + |
| 122 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ 'no_such_lexeme'; |
| 123 | + count |
| 124 | +------- |
| 125 | + 0 |
| 126 | +(1 row) |
| 127 | + |
| 128 | +SELECT count(*) FROM test_tsvector2 WHERE a @@ '!no_such_lexeme'; |
| 129 | + count |
| 130 | +------- |
| 131 | + 508 |
| 132 | +(1 row) |
| 133 | + |
| 134 | +SELECT * FROM tsvector2_stat('SELECT a FROM test_tsvector2') ORDER BY ndoc DESC, nentry DESC, word LIMIT 10; |
| 135 | + word | ndoc | nentry |
| 136 | +------+------+-------- |
| 137 | + qq | 108 | 108 |
| 138 | + qt | 102 | 102 |
| 139 | + qe | 100 | 100 |
| 140 | + qh | 98 | 98 |
| 141 | + qw | 98 | 98 |
| 142 | + qa | 97 | 97 |
| 143 | + ql | 94 | 94 |
| 144 | + qs | 94 | 94 |
| 145 | + qi | 92 | 92 |
| 146 | + qr | 92 | 92 |
| 147 | +(10 rows) |
| 148 | + |
| 149 | +SELECT * FROM tsvector2_stat('SELECT a FROM test_tsvector2', 'AB') ORDER BY ndoc DESC, nentry DESC, word; |
| 150 | + word | ndoc | nentry |
| 151 | +------+------+-------- |
| 152 | +(0 rows) |
| 153 | + |
| 154 | +RESET enable_seqscan; |
| 155 | +DROP EXTENSION tsvector2 CASCADE; |
| 156 | +NOTICE: drop cascades to column a of table test_tsvector2 |
| 157 | +DROP TABLE test_tsvector2 CASCADE; |
0 commit comments