Felipe, Entendi o que você precisa. O tsearch2 você pode utilizar os operadores &(and) |(or) ^(not) quase contemplando toda sua necessidade. Se quiser fazer uma busca trazendo N resultados e ordenar por relevância você pode utilizar o ts_rank ou o ts_rank_cd. Nesse link[1] tem exemplo. Só cuidado se for alterar os pesos e fazer union, para o sua relevância vir de forma correta.
Realizei testes baixando a base de servidores do município de curitiba e irei colocar duas consultas para vc ter uma ideia do uso da relevância. Quando encontra os 3 termos pesquisados juntos ele vem por primeiro, os 3 separados por segundo, dois juntos por terceiro, ... Estou pesquisando as Vantagens do Allan Henrique e retornando uma coluna disp já com *BOLD* nas palavras pesquisadas. ts_headline [2] # OU - Vantagens Allan Henrique SELECT ts_rank_cd(fti, to_tsquery(replace('vantagens allan henrique',' ','|'))) AS Relevancia, nome,cargo,lotacao,descricao_evento,tipo_evento ,ts_headline(nome||' '||cargo||' '||lotacao||' '||descricao_evento||' '||tipo_evento, to_tsquery(replace('vantagens allan henrique',' ','|'))) disp FROM servidores WHERE fti @@ to_tsquery(replace('vantagens allan henrique',' ','|')) ORDER BY relevancia DESC; # AND - Vantagens Allan Henrique SELECT ts_rank_cd(fti, to_tsquery(replace('vantagens allan henrique',' ','&'))) AS Relevancia, nome,cargo,lotacao,descricao_evento,tipo_evento ,ts_headline(nome||' '||cargo||' '||lotacao||' '||descricao_evento||' '||tipo_evento, to_tsquery(replace('vantagens allan henrique',' ','|'))) disp FROM servidores WHERE fti @@ to_tsquery(replace('vantagens allan henrique',' ','&')) ORDER BY relevancia DESC; # AND/OR - Vantagens Allan ou Henrique SELECT ts_rank_cd(fti, to_tsquery('vantagens&(allan|henrique)')) AS Relevancia, nome,cargo,lotacao,descricao_evento,tipo_evento ,ts_headline(nome||' '||cargo||' '||lotacao||' '||descricao_evento||' '||tipo_evento, to_tsquery(replace('vantagens allan henrique',' ','|'))) disp FROM servidores WHERE fti @@ to_tsquery('vantagens&(allan|henrique)') ORDER BY relevancia DESC; Outro detalhe interessante do tsearch2 é que pode ser utilizado um dicionário de sinônimos e vocês especificar por exemplo: carro = automóvel, professor = educador, ... assim a sua pesquisa consegue resultados melhores. [3] [1] http://linuxgazette.net/164/sephton.html [2] http://www.postgresql.org/docs/9.4/static/textsearch-controls.html#TEXTSEARCH-HEADLINE [3] http://www.postgresql.org/docs/9.4/static/textsearch-dictionaries.html#TEXTSEARCH-SYNONYM-DICTIONARY [*] http://www.postgresql.org/docs/9.4/static/textsearch.html Att, Francisco Summa Em 6 de janeiro de 2016 10:28, Felipe Moura <felipegu...@gmail.com> escreveu: > Opa, valeu Sebastian, esses links ja ajudaram bastante, chegando em uma > solução posto aqui para quem precisar de algo semelhante. > > Grato! > > Em 5 de janeiro de 2016 21:26, Sebastian Webber <sebast...@swebber.me> > escreveu: > >> >> >> Em 5 de janeiro de 2016 18:02, Felipe Moura <felipegu...@gmail.com> >> escreveu: >> >>> Fala pessoal, >>> >>> Estamos com a necessidade de fazer uma pesquisa full-text por relevância >>> e por separação de dados conforme a função full-text search do mysql. >>> >> >> Boa noite! >> >> Chegastes a dar uma olhada na doc[1] oficial? Se dar uma procurada no >> histórico vai ter uma penca de referencias que podem te apoiar. Como esse >> post maneiro[2] do HJort. >> >> Caso tenhas alguma duvida mais específica, me avise. >> >> []'s >> >> [1] http://www.postgresql.org/docs/9.4/static/textsearch.html >> [2] http://www.hjort.co/2011/07/full-text-search-em-portugues-no.html >> >> >> >> -- >> Sebastian Webber >> http://swebber.me >> >> _______________________________________________ >> pgbr-geral mailing list >> pgbr-geral@listas.postgresql.org.br >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> > > > > -- > > Atenciosamente, > > Felipe Moura > Desenvolvedor > http://about.me/felipewebdf > twitter: @felipewebdf > talk: felipegu...@gmail.com > > (61) 8490-8156 > > > *Não é da benevolência do padeiro, do açougueiro ou do cervejeiro que eu > espero que saia o meu jantar, mas sim do empenho deles em promover seu > "auto-interesse".* > > _______________________________________________ > 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