Re: [pgbr-geral] Tsearch 2 - Consultar meias palavras
Para construir o índice de busca, o TSearch2 utiliza o conceito de dicionário. Assim, a criação dos radicais das palavras segue um determinado dicionário, que por sua vez são usados no *match. * Quanto à remoção da acentuação, é indicado sim, mas tomem cuidado. Caso o dicionário seja português, afirmação e afirmacao podem não gerar o mesmo radical. Ex.: =# select to_tsvector('afirmação'); to_tsvector - 'afirm':1 =# select to_tsvector('afirmacao'); to_tsvector -- 'afirmaca':1 Para o caso do Rodrigo isso não é problema porque ele está usando um * match* não-padrão para o TSearch2. 2008/8/28 José Carlos Messias [EMAIL PROTECTED] Opa, Não faço uso do tsearch, mas sempre tive dúvidas se o texto pesquisado sempre tem que estar em minusculo ou maiusculo e quanto aos acentos? -- William Leite Araújo Analista de Banco de Dados - QualiConsult ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tsearch 2 - Consultar meias palavras
:-/ quer pegar sem acentos em um banco que esteja colocado como accent sensitive? to_ascii(campo) like to_ascii('%João%') :-P 2008/8/28 ..:: Rodrigo (-_-) Machado ::.. [EMAIL PROTECTED] Quanto a maiusculos e minusculos nao tem problemas.. a = A quanto aos acentos sim.. á A Mas nada impede que vc construa uma funcao que remove todos os acentos. -- *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: :: Rodrigo Machado :: FlaRo Sistemas Linux User #338262 Lat S25º49'20.11' - Lon W55º07'12.05'' *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- = Pablo Santiago Sánchez Análise e Desenvolvimento de Sistemas Web Zend Certified Engineer #ZEND006757 [EMAIL PROTECTED] (61) 9975-0883 http://www.tiblog.com.br Quidquid latine dictum sit, altum viditur = ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tsearch 2 - Consultar meias palavras
buenas com a dica do pg_trgm juntei os dois e obtive resultados maravillosos. Primeiro converto meu text com o minha funcao derivada do show_trgm q originalmente devolve dados do tipo text[], minha funcao devolve outro text, depois crio o tsvector com esse text. assim eu consigo usar o tsearch2 com meias palavras. basicamente funciona assim, my_show_trgm('teste') -- 'teste t te est ste te tes' to_tsvector('teste t te est ste te tes') o to_tsvector cria um hash indexavel. Entao qualquer palavra q eu pesquisar seja teste est te o tsearch vai me trazer o resultado. Agora para tabelas grandes ADIOS like '%xx×%' Se alguem mais interesar pode entrar em contato. Saludos 2008/8/27, ..:: Rodrigo (-_-) Machado ::.. [EMAIL PROTECTED]: Obrigado pela resposta, bem esclarecedora. Gostei muito do TSearch2, não sabia que já estava no kernel da versao 8.3, estou trabalhando ainda com a versão 8.1. :( Valeu pela dica, pg_trgm. Vou investigar. Saludos -- *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: :: Rodrigo Machado :: FlaRo Sistemas Linux User #338262 Lat S25º49'20.11' - Lon W55º07'12.05'' *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: -- *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: :: Rodrigo Machado :: FlaRo Sistemas Linux User #338262 Lat S25º49'20.11' - Lon W55º07'12.05'' *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tsearch 2 - Consultar meias palavras
Opa, Não faço uso do tsearch, mas sempre tive dúvidas se o texto pesquisado sempre tem que estar em minusculo ou maiusculo e quanto aos acentos? 2008/8/28 [EMAIL PROTECTED]: buenas com a dica do pg_trgm juntei os dois e obtive resultados maravillosos. Primeiro converto meu text com o minha funcao derivada do show_trgm q originalmente devolve dados do tipo text[], minha funcao devolve outro text, depois crio o tsvector com esse text. assim eu consigo usar o tsearch2 com meias palavras. basicamente funciona assim, my_show_trgm('teste') -- 'teste t te est ste te tes' to_tsvector('teste t te est ste te tes') o to_tsvector cria um hash indexavel. Entao qualquer palavra q eu pesquisar seja teste est te o tsearch vai me trazer o resultado. Agora para tabelas grandes ADIOS like '%xx×%' Se alguem mais interesar pode entrar em contato. Saludos 2008/8/27, ..:: Rodrigo (-_-) Machado ::.. [EMAIL PROTECTED]: Obrigado pela resposta, bem esclarecedora. Gostei muito do TSearch2, não sabia que já estava no kernel da versao 8.3, estou trabalhando ainda com a versão 8.1. :( Valeu pela dica, pg_trgm. Vou investigar. Saludos -- *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: :: Rodrigo Machado :: FlaRo Sistemas Linux User #338262 Lat S25º49'20.11' - Lon W55º07'12.05'' *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: -- *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: :: Rodrigo Machado :: FlaRo Sistemas Linux User #338262 Lat S25º49'20.11' - Lon W55º07'12.05'' *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tsearch 2 - Consultar meias palavras
Quanto a maiusculos e minusculos nao tem problemas.. a = A quanto aos acentos sim.. á A Mas nada impede que vc construa uma funcao que remove todos os acentos. -- *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: :: Rodrigo Machado :: FlaRo Sistemas Linux User #338262 Lat S25º49'20.11' - Lon W55º07'12.05'' *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tsearch 2 - Consultar meias palavras
OPa.. e o que seria ERs ?? Investiguei e nao encontrei.. Manda alguma informação por favor :) Saludos 2008/8/28 [EMAIL PROTECTED] Adios ´%word%' muito tempo utilize ERs meu jovem :) ~ -- *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: :: Rodrigo Machado :: FlaRo Sistemas Linux User #338262 Lat S25º49'20.11' - Lon W55º07'12.05'' *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tsearch 2 - Consultar meias palavras
2008/8/28 ..:: Rodrigo (-_-) Machado ::.. [EMAIL PROTECTED]: OPa.. e o que seria ERs ?? Investiguei e nao encontrei.. Manda alguma informação por favor :) Saludos 2008/8/28 [EMAIL PROTECTED] Adios ´%word%' muito tempo utilize ERs meu jovem :) ~ -- *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: :: Rodrigo Machado :: FlaRo Sistemas Linux User #338262 Lat S25º49'20.11' - Lon W55º07'12.05'' *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral Rodrigo, Usei um pouco (mas muito pouco de ER-expressões regulares em shell scripts) e procurei no Google pra te ajudar e encontrei... http://aurelio.net/er/ http://pg.ribafs.net/content/view/39/53/ Sucesso, -- Armando Roque http://www.linkedin.com/in/armandoroque http://dropsdef.blogspot.com http://del.icio.us/dropsdef ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tsearch 2 - Consultar meias palavras
expressao regular meu caro. 2008/8/28 ..:: Rodrigo (-_-) Machado ::.. [EMAIL PROTECTED]: OPa.. e o que seria ERs ?? Investiguei e nao encontrei.. Manda alguma informação por favor :) Saludos 2008/8/28 [EMAIL PROTECTED] Adios ´%word%' muito tempo utilize ERs meu jovem :) ~ -- *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: :: Rodrigo Machado :: FlaRo Sistemas Linux User #338262 Lat S25º49'20.11' - Lon W55º07'12.05'' *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tsearch 2 - Consultar meias palavras
2008/8/28 José Carlos Messias [EMAIL PROTECTED] expressao regular meu caro. Valeu garoto, vou investigar.. ? -- *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: :: Rodrigo Machado :: FlaRo Sistemas Linux User #338262 Lat S25º49'20.11' - Lon W55º07'12.05'' *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tsearch 2 - Consultar meias palavras
Obrigado pela resposta, bem esclarecedora. Gostei muito do TSearch2, não sabia que já estava no kernel da versao 8.3, estou trabalhando ainda com a versão 8.1. :( Valeu pela dica, pg_trgm. Vou investigar. Saludos -- *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: :: Rodrigo Machado :: FlaRo Sistemas Linux User #338262 Lat S25º49'20.11' - Lon W55º07'12.05'' *:-.,_,.-:*'``'*:-.,_,.-:*:-.,_,.-:*'``'*:-.,_,.-: ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Tsearch 2 - Consultar meias palavras
2008/8/26 [EMAIL PROTECTED] Bom dia colegas Estive lendo um artido do Coutinho Costa na revista Linux Magazine que explica muito bem o uso basico do TSearch2. Fiz testes e estou maravilhado com a rapidez das buscas. Mas preciso buscar por meias palavras, com like eu consigo, por exemplo se quero buscar 'rodrigo machado' eu digito 'rod macha' ou 'drigo ado'. Tem como fazer isto com o tsearch? Trabalhei bastante com TSearch2 na versão 8.1 e 8.2 do postgresql, e posso afirmar que, nessas versões, onde o mesmo ainda era um *contrib* (a partir da versão 8.3 estão no *core* do PostgreSQL), e posso afirmar que não é possível. Nessas versões (e acredito muito que na 8.3 também) ele funciona obtendo o radical das palavras que você digita, a indexação do texto é com base nesses radicais. Assim, o texto indexado Rodrigo Rocha Machado seria algo como 9:roch 1:rodrig 16:machad (do menor radical para o maior) e o * match* com rod macha não seria possível. Contudo, existem outros *contribs *que podem lhe auxiliar nesse tipo de comparação. O pg_trgm é um exemplo. -- William Leite Araújo Analista de Banco de Dados - QualiConsult ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral