PGFoundry realmente tem projetos muito bons, eu espero não ter que abandonar
o tsvector @@ tsquery =(

Gostei bastante e o resultado parece muito satisfatório


2009/5/25 Rafael Domiciano <[email protected]>

> Olá jorge,
>
> Eu encontrei o mesmo problema que você quando eu estava implementando o
> FTS, não consegui encontrar nada para que eu consegui-se resolver esse
> problema.
>
> Depois de um tempo eu descobri um cara que é usado junto ao FTS, que cria
> todas as possibilidade possíveis para o campo indexado, infelizmente não
> implementei ele, e portanto não lembro qual era a contrib para isso.
>
> talvez se você der uma procurada no pgfoundry [1], foi lá que eu achei ele.
>
> [1] http://pgfoundry.org/
>
> Rafael Domiciano
>
> 2009/5/25 Jorge Vilela <[email protected]>
>
> Pessoal
>> Agora eu encuquei com isso.... É assim mesmo que todo mundo faz FULL-TEXT
>> SEARCH no postgres?
>>
>>
>>
>> TO_TSVECTOR(ARRAY_TO_STRING(SHOW_TRGM(campo), ' ')) @@
>> TO_TSQUERY('meia_palavra')
>>
>>
>>
>> O que está acontecendo é que: SHOW_TRGM não retorna todas as
>> possibilidades! Vejam:
>>
>> banco=# select array_to_string(show_trgm('monitor'), ' ');
>>          array_to_string
>> ---------------------------------
>>    m  mo ito mon nit oni or  tor
>> (1 registro)
>>
>>
>> Logo, se a pessoa pesquisar por 'monit', não encontrará nada no math @@
>>
>> Alguém já conseguiu implementar pesquisa FULL-TEXT no postgres?
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> 2009/5/23 Jorge Vilela <[email protected]>
>>
>> Muito obrigado Osvaldo! Era isso mesmo...
>>>
>>>
>>> Segui as instruções e acabei chegando em um SQL assim:
>>>
>>> banco=# select descricao from tag where
>>> to_tsvector(array_to_string(show_tr
>>> gm(descricao), ' ')) @@ to_tsquery('monit');
>>>  descricao
>>> -----------
>>> (0 registros)
>>>
>>>
>>> Existem alguns registros contendo a palavra monitor, porém, se eu
>>> procurar por parte da palavra 'monit' não encontra, verifiquei:
>>>
>>> banco=# select array_to_string(show_trgm('monitor'), ' ');
>>>          array_to_string
>>> ---------------------------------
>>>    m  mo ito mon nit oni or  tor
>>> (1 registro)
>>>
>>>
>>> Ele não encontrou pois show_trgm não retorna monit... aí o @@ não
>>> consegue fazer o math
>>>
>>> Sendo assim fica impossível utilizar tsvector @@ tsquery em uma busca
>>> caso o usuário pesquise por apenas meias palavras?
>>>
>>> Isso aconteceria com várias palavras =(
>>>
>>>
>>> Alguém tem alguma solução para FULL-TEXT SEARCH em duas ou mais tabelas,
>>> onde o usuário possa digitar o que for?
>>>
>>>
>>> Muito obrigado pessoal!
>>> Jorge Vilela =]
>>>
>>>
>>>
>>>
>>> 2009/5/22 Osvaldo Kussama <[email protected]>
>>>
>>>  2009/5/22 Jorge Vilela <[email protected]>:
>>>> > Obrigado Luciano =]
>>>> > O show_trgm retorna text[] e to_tsvector e to_tsquery recebem text.
>>>> > Alguém sabe como converter? Eu tentei algo do tipo: Select [...] WHERE
>>>> > to_tsvector(show_trgm(campo)::text)  [...] ... Mas o banco não
>>>> consegue
>>>> > converter =(
>>>> >
>>>> > Jorge
>>>> > 2009/5/22 Luciano Mittmann <[email protected]>
>>>> >>
>>>> >> Boa tarde Jorge,
>>>> >>
>>>> >> Dia desses procurei algo parecido com isso no histórico da lista e
>>>> >> encontrei algo que pode te ajudar:
>>>> >>
>>>> >>
>>>> >>
>>>> http://listas.postgresql.org.br/pipermail/pgbr-geral/2008-August/011406.html
>>>> >>
>>>> >> Trata-se de uma discussão sobre busca por meias palavras utilizando o
>>>> >> tsearch.
>>>> >>
>>>> >>
>>>> >> Luciano Mittmann.
>>>> >>
>>>> >> 2009/5/22 Jorge Vilela <[email protected]>
>>>> >>>
>>>> >>> Bom dia pessoal!
>>>> >>> Tenho uma busca em duas tabelas (Produto e marca)
>>>> >>> O SQL é +/- assim:
>>>> >>> SELECT produto.descricao, marca.descricao FROM produto JOIN marca ON
>>>> >>> (produto.id=marca.id)
>>>> >>> WHERE to_tsvector(to_ascii(produto.descricao) || ' ' ||
>>>> >>> to_ascii(marca.descricao)) @@ to_tsquery(to_ascii('STRINGDEBUSCA'))
>>>> >>>
>>>> >>>
>>>> >>> O problema é que esse tipo de busca FULL-TEXT não funciona como
>>>> %like%.
>>>> >>> Se eu buscar por "COMPUTAD" ele não encontra "COMPUTADOR".
>>>> >>>
>>>> >>> Alguém conhece alguma forma de melhorar a busca com to_tsvector e
>>>> >>> to_tsquery?
>>>> >>> _______________________________________________
>>>>
>>>>
>>>>
>>>> Se eu entendi corretamente tente a função array_to_string(anyarray,
>>>> text).
>>>> http://www.postgresql.org/docs/current/interactive/functions-array.html
>>>>
>>>> Osvaldo
>>>> _______________________________________________
>>>> pgbr-geral mailing list
>>>> [email protected]
>>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>>
>>>
>>>
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> [email protected]
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a