E se eu quiser pesquisar que comece com Euler e termine com oliveira. Indice com _pattern_ops so aceita pesquisa no inicio do campo. E indice gist não aceita indice composto.
Não consegui resolver esse problema ? Se puder dar um ideia. Euler Taveira de Oliveira-2 wrote: > > mateusgra escreveu: >> Gostaria de saber se o Tsearch tem como localizar um texto que comece com >> uma determinada palavra com se fosse o like 'POSTGRESQL 8.2%'. >> > Você _não_ entendeu o conceito de busca textual [1] (aka text _search_); > quando se transforma um texto no tipo tsvector, este "perde" > posicionamento e > "ganha" peso (relevância) e proximidade. Assim, sem posicionamento é > impossível fazer uma comparação com prefixo do texto. O uso do :* nos > deixa > comparar com o prefixo de *cada* lexema. > > O que você precisa é de expressões regulares [2]. Veja: > > euler=# create table bar (a text); > CREATE TABLE > euler=# insert into bar select 'euler taveira de oliveira' from > generate_series(1, 10); > INSERT 0 10 > euler=# insert into bar select 'jorge vilela' from generate_series(1, > 5000); > INSERT 0 5000 > euler=# create index bari on bar (a text_pattern_ops); > CREATE INDEX > euler=# select * from bar where a ~ '^euler'; > a > --------------------------- > euler taveira de oliveira > euler taveira de oliveira > euler taveira de oliveira > euler taveira de oliveira > euler taveira de oliveira > euler taveira de oliveira > euler taveira de oliveira > euler taveira de oliveira > euler taveira de oliveira > euler taveira de oliveira > (10 rows) > > euler=# explain analyze select * from bar where a ~ '^euler'; > QUERY PLAN > > --------------------------------------------------------------------------------------------------------------------- > Bitmap Heap Scan on bar (cost=4.35..25.17 rows=10 width=13) (actual > time=0.101..0.224 rows=10.00 loops=1.00) > Filter: (a ~ '^euler'::text) > -> Bitmap Index Scan on bari (cost=0.00..4.35 rows=10 width=0) > (actual > time=0.055..0.055 rows=10.00 loops=1.00) > Index Cond: ((a ~>=~ 'euler'::text) AND (a ~<~ 'eules'::text)) > Total runtime: 0.334 ms > (5 rows) > > > [1] http://www.postgresql.org/docs/8.4/static/textsearch.html > [2] > http://www.postgresql.org/docs/8.4/static/functions-matching.html#FUNCTIONS-POSIX-REGEXP > > > -- > Euler Taveira de Oliveira > http://www.timbira.com/ > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > -- View this message in context: http://www.nabble.com/TSearch-palavar-Inicial-tp24035502p24042073.html Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com. _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral