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
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
--
View this message in context:
http://www.nabble.com/TSearch-palavar-Inicial-tp24035502p24042078.html
Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral