Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

~TiuTalk~

FULLTEXT search

Recommended Posts

Fala gente,

 

Estou tentando fazer uma busca aqui no meu site e tenho um indice FULLTEXT que uso para essa busca, a consulta gerada é essa:

 

SELECT `Noticia`.`id`, `Noticia`.`titulo`, `Noticia`.`chamada`,`Noticia`.`restrita`, `Noticia`.`published`, `Categoria`.`nome`,`Categoria`.`slug` FROM `noticias` AS `Noticia` LEFT JOIN `usuarios` AS`Usuario` ON (`Noticia`.`usuario_id` = `Usuario`.`id`) LEFT JOIN`categorias` AS `Categoria` ON (`Noticia`.`categoria_id` =`Categoria`.`id`) LEFT JOIN `galerias` AS `Galeria` ON(`Noticia`.`galeria_id` = `Galeria`.`id`) LEFT JOIN `podcasts` AS`Podcast` ON (`Noticia`.`podcast_id` = `Podcast`.`id`) WHERE MATCH(`Noticia`.`titulo`, `Noticia`.`texto`, `Noticia`.`autor`) AGAINST('+spa' IN BOOLEAN MODE) AND `Noticia`.`ativa` = 1 AND`Noticia`.`published` <= NOW() ORDER BY MATCH (`Noticia`.`titulo`,`Noticia`.`texto`, `Noticia`.`autor`) AGAINST ('+spa') DESC,`Noticia`.`published` DESC LIMIT 20

 

Sei que parece enorme, acho que uma versão menor pode ser usada de exemplo:

 

SELECT * FROM `noticias` AS `Noticia` WHERE MATCH(`Noticia`.`titulo`, `Noticia`.`texto`, `Noticia`.`autor`) AGAINST('+spa' IN BOOLEAN MODE) AND `Noticia`.`ativa` = 1 AND`Noticia`.`published` <= NOW() ORDER BY MATCH (`Noticia`.`titulo`,`Noticia`.`texto`, `Noticia`.`autor`) AGAINST ('+spa' IN BOOLEAN MODE) DESC,`Noticia`.`published` DESC LIMIT 20

 

Tenho um registro no banco de dados que o titulo é "Atriz de Caminhos da Índias, Rosane Gofman relaxa na Saison Spa", reparem o Spa no fim do titulo... O problema é que a busca não encontra esse registro!

 

Alguém tem idéia do que possa ser?

 

Já tentei 'spa', '+spa', '*spa*', '+spa*' e nada...

 

Segue uma imagem com a estutura da tabela e os índices:

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é devido que esta gravado com Spa e você está procurando span? segundo 'manuel' do mysql essa busca seria case sensitive...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é devido que esta gravado com Spa e você está procurando span? segundo 'manuel' do mysql essa busca seria case sensitive...

 

Certeza?

 

Keep in mind that although MATCH() AGAINST() is case-insensitive, it also is basically **accent-insensitive**.

Eu to procurando por "spa" não "span" :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Erro de digitação, creio que você entendeu, só quiser dizer que seria Spa devido a ser case sensitive

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.