Ir para conteúdo

POWERED BY:

Arquivado

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

guhfloripa

busca comando LIKE

Recommended Posts

Oi,

Estou com o seguinte código:

 

$busca="the simpsons";

$sql = mysql_query("SELECT * FROM encode WHERE campo1 LIKE '%".$busca."%'");

 

no banco de dados possuo 2 registros no campo1:

"the simpsons"

"simpsons"

 

porem quando alguem procura por "the simpsons", gostaria que ele encontrasse o registro que está escrito apenas simpsons tambem.

Outro exemplo seria se alguem procurar por "a ilha" , ele encontrasse o registro "ilha".

 

Alguem sabe se é possível fazer isso?

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao tem como, pq o '%' eh um caractere coringa, e por conta disto ele do vai buscar o q tiver com akela palavra e alem dakilo, tipo

 

tem simpson e achou the simpson....neste caso o the eh alem da palavra buscada, a nao ser q você use uma funcao de expressao regular, o q pode deixar o banco lento...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo,

 

Utilizando o LIKE você só vai conseguir o resultado inverso, por exemplo se buscarem simpsons também vai retornar the simpsons

 

Existe a possibilidade de fazer da forma que você deseja, mais não me recordo o nome da tecnologia, o site imasters utiliza esse tipo de busca e seu nome foi postada em uma notícia quando o novo site foi lançado, da uma procurada nas noticias antigas e ve se consegue encontrar algo.

 

Até mais

 

Oi,

Estou com o seguinte código:

 

$busca="the simpsons";

$sql = mysql_query("SELECT * FROM encode WHERE campo1 LIKE '%".$busca."%'");

 

no banco de dados possuo 2 registros no campo1:

"the simpsons"

"simpsons"

 

porem quando alguem procura por "the simpsons", gostaria que ele encontrasse o registro que está escrito apenas simpsons tambem.

Outro exemplo seria se alguem procurar por "a ilha" , ele encontrasse o registro "ilha".

 

Alguem sabe se é possível fazer isso?

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Alguem sabe se é possível fazer isso?

claro q é, mas essas aspas estão erradas:

$sql = mysql_query("SELECT * FROM encode WHERE campo1 LIKE '%".$busca."%'");

tente assim:

$sql = mysql_query("SELECT * FROM encode WHERE campo1 LIKE '%$busca%'");

Compartilhar este post


Link para o post
Compartilhar em outros sites
1334276666[/url]' post='1830912']

claro q é, mas essas aspas estão erradas:

$sql = mysql_query("SELECT * FROM encode WHERE campo1 LIKE '%".$busca."%'");

tente assim:

$sql = mysql_query("SELECT * FROM encode WHERE campo1 LIKE '%$busca%'");

 

@fernando se testar vai ver q vai dar o mesmo resultado....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode aplicar um conceito diferente durante o cadastro dos títulos e alterar sua query.

 

Emlistagens, principalmente de Filmes e derivados, oa artigos, definidos e indefinidos (o, a, os, as, um, uns, uma, umas) e algumas preposições se situam no final do título, separado por uma vírgula.

 

Nesse caso, The Simpsons viraria Simpsons, The.

 

E dessa forma, sua cláusula LIKE poderia ter o caractere coringa de início removido:

 

$query = sprintf( 'SELECT * FROM encode WHERE `campo1` LIKE %s%%', $busca );

Dessa forma, apenas resultados que iniciem com Simpsons seriam retornados como Simpsons, The e Simpsons, The - The Movie (mesmo que pareça estranho

 

Se você não remover o curinga inicial, não vai dar problema, só seria desnecessário pois, pelo menos nesse caso, não existiria nada antes de Simpsons que não seja o artigo definido (The).

 

O problema dessa abordagem é que se já houverem registros, você terá de alterar um a um.

Compartilhar este post


Link para o post
Compartilhar em outros sites
@fernando se testar vai ver q vai dar o mesmo resultado...

 

quis dizer na query, nivel SQL:

 

buscalike.jpg

By jf_cam at 2012-04-13

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acontece, Fernando, que por estarmos em PHP a questão das aspas é considerada apenas no que tange a linguagem em si.

 

Uma vez programado o sistema, não se usará o console, e sim a linguagem que, através do Driver, enviará e trará informações do banco.

 

E foi à esse respeito que o Igor se referiu. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Algumas dicas:

 

Busca original: THE LORD OF THE RINGS

 

- Separe os tokens, elimine caracteres especiais caso existam (1:THE 2:LORD 3:OF 4:THE 5:RINGS)

- Se necessário, faça uma normalização dos tokens (remover acentos);

- Elimine artigos e preposições (Stop Words, aplicar para o idioma português e inglês, a busca usando Full-Text Search já aplica para o inglês, mas eu faria para os 2 mesmo assim);

 

Após o tratamento vai ficar: LORD RINGS

 

- Trabalhando com MyISAM, use Full-Text Search.

Sua consulta fica assim:

SELECT * 
FROM filme 
WHERE MATCH(titulo,sinopse) AGAINST ('LORD RINGS' IN BOOLEAN MODE)

 

Com relevância:

SELECT *, MATCH(titulo,sinopse) AGAINST ('LORD RINGS' IN BOOLEAN MODE) AS relevancia 
FROM filme 
WHERE MATCH(titulo,sinopse) AGAINST ('LORD RINGS' IN BOOLEAN MODE) 
ORDER BY relevancia DESC

 

Para os exemplos, os campos titulo e sinopse precisam ter indice Fulltext.

 

Leitura recomendada:

http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que resposta :clap:

 

Mas apenas para burricos como eu entenderem melhor:

 

FULLTEXT é exclusivo de MyISAM e/ou exige alguma coisa "a mais" da estrutura do banco?

 

Até mesmo para justificar o tópico estar em PHP, seria possível demonstrar o retorno PHP?

 

E, mesmo que completamente offtopic: A técnica apresentada possibilita a criação de um recurso "Posts Relacionados", comumente visto em Blogs?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Requisito:

Tabela tem que ser MyISAM, nenhuma outro requisito de servidor se faz necessário. (O MySQL permite que um mesmo banco de dados tenha vários tipos de tabelas)

Um indice FULLTEXT apenas pode ser criado com campos do tipo CHAR, VARCHAR e TEXT.

 

Quanto a "Posts Relacionados", pode ser aplicado sim, usando uma relação de palavras-chave e/ou conceitos. Baseado no post que esta sendo lido, submeter uma nova consulta com todas as palavras-chave e, a partir deste, obter uma lista de posts relacionados. As técnicas aplicadas para obter este resultado são diversas, mas usando FULLTEXT a lista de resultados pode ser mais precisa.

 

Não tenho nenhum algoritmo pronto para aplicar as técnicas que comentei, porém consiste basicamente em funções de arrays e substituições, posso desenvolver algoritmos simples para aplicar as técnicas e postar no lab de scripts.

 

Lista das "Stop Word" para os idiomas português, inglês e espanhol:

http://paginas.ucpel.tche.br/~loh/stoplists.zip

Compartilhar este post


Link para o post
Compartilhar em outros sites

me intrometendo um pouco hehehe

 

FULLTEXT é exclusivo de MyISAM e/ou exige alguma coisa "a mais" da estrutura do banco?

No MySQL sim, é exclusivo MyISAM e precisa de indices nas colunas com FTS

 

Até mesmo para justificar o tópico estar em PHP, seria possível demonstrar o retorno PHP?

 

É o mesmo que outras consultas do PHP, só ali relevancia é numerica. Ele colocou o "boolean mode" para retornar [edit] um valor inteiro.

Exemplo com PHP:

 

date_default_timezone_set('America/Sao_Paulo');

$cn = mysql_connect('127.0.0.1','root');
mysql_select_db('mensagens', $cn);

$termo = 'governo nega';

$sql = "SELECT
p.codpost
, p.titulo
, ROUND(((MATCH(p.titulo, p.mensagem) AGAINST ('%1\$s')) / s.max_score) * 100) as relevancia
FROM post p,
(
	SELECT MAX(MATCH(titulo, mensagem) AGAINST('%1\$s')) as max_score
	FROM post LIMIT 1
) s

HAVING relevancia > 0
ORDER BY relevancia DESC";

$sql = sprintf($sql, mysql_real_escape_string($termo));

$res = mysql_query($sql) or die(mysql_error());

while($row = mysql_fetch_assoc($res)){
echo htmlentities($row['titulo'], ENT_COMPAT, 'UTF-8'), ' - <strong>relevancia: ', number_format($row['relevancia'], 2), '%</strong> <br>';
}

mysql_free_result($res);
mysql_close($cn);

 

Dump do banco usado:

 

 

 

-- MySQL dump 10.13  Distrib 5.5.15, for Win32 (x86)
--
-- Host: localhost    Database: mensagens
-- ------------------------------------------------------
-- Server version	5.5.15

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `post`
--

DROP TABLE IF EXISTS `post`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `post` (
 `codpost` int(11) NOT NULL AUTO_INCREMENT,
 `titulo` varchar(100) NOT NULL,
 `mensagem` text NOT NULL,
 PRIMARY KEY (`codpost`),
 FULLTEXT KEY `titulo` (`titulo`,`mensagem`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `post`
--

LOCK TABLES `post` WRITE;
/*!40000 ALTER TABLE `post` DISABLE KEYS */;
INSERT INTO `post` VALUES (1,'STF nega pedido de Demóstenes para anular gravações','O ministro Ricardo Lewandowsky, do STF (Supremo Tribunal Federal), negou nesta sexta-feira (13) pedido da defesa do senador Demóstenes Torres (sem partido-GO) para anular o poder de prova das gravações que o ligam a Carlinhos Cachoeira, acusado de explorar jogo ilegal.\r\n\r\nAs gravações foram realizadas durante a Operação Monte Carlo, da Polícia Federal, que levou Cachoeira à prisão.\r\n\r\nComposição de CPI reflete opção de eleitores nas urnas, diz Tatto\r\nEsquema de Cachoeira funcionava como \'polvo\', diz OAB-RJ\r\nHá clima de \'frieza e decepção\' em relação a Demóstenes, diz senador\r\n\r\nDemóstenes havia pedido a anulação das gravações e a paralisação das investigações ao argumentar que, por ter foro privilegiado, não poderia ter sido monitorado sem o aval da corte.\r\n\r\nO advogado de Demóstenes, Antônio Carlos de Almeida Castro, disse que a decisão não representa derrota para a defesa do parlamentar.\r\n\r\n\"Em liminar, o ministro considerou que não era o caso de suspender o inquérito. Um ministro não pode liminarmente tornar nulas as provas. O pedido era para paralisar as investigações até o julgamento do mérito. Vamos agora ao mérito\", afirmou o advogado à Folha.\r\n\r\nSegundo Kakay, Lewandowsky atendeu parte do pedido da defesa ao permitir que as escutas e a ação penal que tramita na Justiça de Goiás sejam encaminhadas integralmente ao STF.\r\n\r\nDemóstenes planejava esperar a anulação das provas pelo STF para discutir uma eventual renúncia. Com a liminar, a expectativa é que o senador se mantenha no cargo para manter o foro privilegiado no Supremo.\r\n\r\nO parlamentar responde a processo por quebra de decoro parlamentar no Conselho de Ética do Senado que pode resultar na cassação do seu mandato.'),(2,'Governo propõe salário mínimo de R$ 667,75 em 2013, aumento de 7%','O governo prevê um salário mínimo de R$ 667,75 para o ano de 2013, um aumento de 7,36% em relação ao atual valor de R$ 622,00.\r\n\r\nO salário mínimo está previsto no projeto da Lei de Diretrizes Orçamentárias (LDO) de 2013, divulgado nesta sexta-feira (13) pelo Ministério do Planejamento. Para  o novo valor entrar em vigor, a lei ainda precisa ser aprovada pelo Congresso Nacional.\r\n\r\nA equipe econômica projeta ainda um salário mínimo de R$ 729,20 para 2014 e de R$ 803,93 para o ano seguinte. Com isso, haveria um aumento de 29% acumulado até 2015.\r\n\r\nSegundo cálculos do Dieese (Departamento Intersindical de Estatística e Estudos Socioeconômicos) divulgados nesta semana, o brasileiro precisaria de um salário mínimo de R$ 2.295,58, para conseguir arcar com suas despesas básicas.\r\n\r\nMétodo de reajuste do mínimo\r\nA LDO apresenta os parâmetros que servirão de base para a elaboração do Orçamento-Geral da União do próximo ano.\r\n\r\nO índice de aumento do salário mínimo é calculado pelo governo com base na inflação nos últimos dois anos e no percentual de crescimento da economia no ano anterior.\r\nEste método foi definido no início de 2010 por meio de uma medida provisória aprovada pelo Congresso Nacional. A regra determina ainda que até 2015 todas as definições sobre o valor do mínimo devem ser feitas por meio de decreto presidencial.\r\n\r\nSegundo estudo divulgado em janeiro deste ano pelo Dieese (Departamento Intersindical de Estatística e Estudos Socioeconômicos), 48 milhões de pessoas têm rendimento baseado no salário mínimo.\r\n\r\nO maior grupo está entre os beneficiários da Previdência Social (19,7 milhões de segurados); seguidos de empregados (12,8 milhões de trabalhadores); trabalhadores por conta própria (8,7 milhões de pessoas) e mais de cinco milhões de empregados domésticos.\r\n\r\nCâmbio, inflação e PIB\r\nO projeto manteve as projeções oficiais para a inflação e para o crescimento econômico.\r\n\r\nO crescimento real do Produto Interno Bruto (PIB) continuou estimado em 5,5% para 2012.\r\n\r\nA inflação pelo Índice de Preços ao Consumidor Amplo (IPCA) também não variou em relação aos números divulgados em fevereiro pela equipe econômica e ficou em 4,5%, um pouco menos que os 4,7% estimados para este ano.\r\n\r\nO governo federal definiu em R$ 155,9 bilhões a parte da arrecadação anual que o governo separa para pagamento do juro da dívida, o superavit primário.\r\n\r\nO Planejamento estima taxa de câmbio média de R$ 1,84 para 2013, contra a taxa de R$ 1,76 em 2012. Os juros básicos da economia, de acordo com o projeto da LDO, deverão encerrar 2012 em 9,75% ao ano e atingir 8,5% ao ano no fim de 2013.'),(3,'Auxílio-paletó custa R$ 252 milhões em quatro anos','Pagar 15 salários anuais a deputados estaduais e federais e senadores custa caro ao contribuinte brasileiro. O Congresso Nacional e 16 assembleias legislativas desembolsam, pelo menos, R$ 252,5 milhões com o pagamento de salários extras a parlamentares federais e estaduais ao longo de quatro anos de mandato. O dinheiro vai para o bolso de, ao menos, 1.315 políticos. Mas poderia sustentar, por quatro anos, 17 mil famílias que vivem na extrema pobreza com o benefício máximo do Bolsa Família, de R$ 306. Ou, ainda, ser utilizado na construção de 4,7 mil casas populares de R$ 54 mil cadliminarsaopauloa – teto do programa habitacional “Minha Casa, Minha Vida” para esse tipo de moradia.\r\n\r\nLeia também:\r\n\r\nPresidente da OAB-PE: “Auxílio-paletó é ilegal e imoral”\r\nMaioria dos deputados estaduais ganha 15 salários\r\n\r\nOutros destaques de hoje no Congresso em Foco\r\n\r\nOu, pegando ao pé da letra o termo, acreditando que a razão do benefício é auxiliar os parlamentares na compra de seus paletós, o valor permitiria a compra de 126.250 ternos, considerando-se o valor de R$ 2 mil, mais do que suficiente para adquirir uma roupa de boa qualidade nas principais lojas masculinas. Cada parlamentar poderia, assim, comprar com o auxílio-paletó, pelo menos 20 ternos novos por ano.\r\n\r\nAlegando que apenas seguem o modelo adotado no Congresso, 16 assembleias legislativas têm previsão para pagar, em fevereiro e dezembro de cada ano, duas parcelas equivalentes aos vencimentos dos deputados estaduais, algo em torno de R$ 20 mil, a título de “ajuda de custo” ou “auxílio-paletó”. Em Goiás e em São Paulo, o pagamento está no momento suspenso por força de liminar da Justiça. O Senado discute extinguir o benefício, reduzindo o auxílio a um pagamento no começo do mandato e a outro, no último mês. Mas o corte nos estados terá de ser discutido caso a caso.\r\n\r\nA fatura maior recai sobre o Congresso Nacional. Os 15 salários dos 513 deputados e 81 senadores custam, ao longo de quatro anos – tempo de mandato de um deputado e meio-mandato de um senador – R$ 126,8 milhões. Por ano, são R$ 27,4 milhões com o pagamento dos dois extras dos deputados e R$ 4,3 milhões destinados aos senadores. No caso das assembleias legislativas, o montante não fica muito atrás: em quatro anos, são R$ 125,6 milhões. Os valores são estimativas feitas pelo Congresso em Foco com base em informações obtidas nos legislativos estaduais.\r\n\r\nCampeões em gastos\r\n\r\nNo Maranhão – um dos três estados com piores indicadores sociais do país -, o gasto anual com os salários extras de seus 42 deputados estaduais chegou a R$ 4,2 milhões com o pagamento de 18 salários. A conta, no entanto, pode ser ainda maior, já que não inclui os suplentes nem os ex-deputados, que, por lá, também recebem o benefício. Anteontem (11), porém, os maranhenses decidiram reduzir de 18 para 15 o número anual de salários, após a repercussão de reportagem sobre o assunto do programa Fantástico, da TV Globo. Como o primeiro auxílio já foi pago em fevereiro, este ano eles embolsarão o equivalente a 16 subsídios.\r\n\r\nNão fosse uma liminar obtida pelo Ministério Público na Justiça, a Assembleia Legislativa de São Paulo gastaria este ano quase R$ 4 milhões somente com as ajudas de custo dos seus 94 deputados – fora os suplentes. Quantia semelhante, porém, foi paga no ano passado. Os pagamentos de 2012 estão suspensos por força de liminar obtida pelo Ministério Público Estadual na Justiça (veja a íntegra da ação), a exemplo do que ocorre em Goiás. Mas as duas Casas não extinguiram o benefício, e aguardam a análise do mérito da questão no Judiciário.\r\n\r\nAlém de Maranhão e São Paulo, Minas Gerais, com R$ 3 milhões; Rio de Janeiro, com R$ 2,8 milhões, e Bahia, com R$ 2,5 milhões, completam o ranking dos cinco estados que mais têm despesas com os vencimentos extras de deputados estaduais.\r\n\r\nBolso cheio\r\n\r\nComo mostrou ontem o Congresso em Foco, dos 1.059 deputados estaduais e distritais do país, pelo menos 721 (68%) recebem 15 salários anuais, assim como os 513 deputados federais e senadores. O número de deputados estaduais beneficiados, no entanto, é ainda maior. As regras variam de estado para estado, mas os suplentes que cumpriram parte do mandato no ano também têm direito a embolsar a “ajuda de custo”, a exemplo do que ocorre no Congresso.\r\n\r\nTambém pagam o benefício as assembleias de outros 11 estados: Acre, Amazonas, Ceará, Goiás (onde o benefício também está suspenso por liminar da Justiça), Mato Grosso do Sul, Pernambuco, Rio Grande do Norte, Rio Grande do Sul, Roraima, Santa Catarina e Tocantins.\r\n\r\nProcuradas pelo Congresso em Foco, os Legislativos do Amapá, Espírito Santo, Mato Grosso, Pará, Paraíba, Piauí, Paraná e Sergipe informaram que seus deputados recebem atualmente 13 salários anuais. A reportagem aguarda retorno dos Legislativo de Rondônia e Alagoas. O Distrito Federal extinguiu o benefício no mês passado após pressão popular sobre os deputados distritais.\r\n\r\nConheça o Congresso em Foco');
/*!40000 ALTER TABLE `post` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2012-04-13 15:59:25

 

 

 

 

E, mesmo que completamente offtopic: A técnica apresentada possibilita a criação de um recurso "Posts Relacionados", comumente visto em Blogs?

 

No meu ponto de vista, sim.

Bastaria realizar uma consulta mostrada pelo amigo anteriormente, mas excluindo o registro selecionado (no caso, o post aberto).

 

fulltext search é legal, mas...

 

Já li sobre alguns problemas que ele causa no banco, quando "usado para o lado negro da força" :)

 

Leia a resposta aceita neste link.

http://stackoverflow.com/questions/1381186/fulltext-search-with-innodb

 

Tem que tomar muito cuidado para não ter mais dor de cabeça do que soluções :thumbsup:

 

Edit: Melhoria na porcentagem encontrada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... Como eu adoro tópicos assim... :rolleyes:

 

Bom, mesmo que ainda fora de contexto, acredito que no fundo, no fundo, valha de alguma coisa para auxiliar a criação de um sistema de busca bacana sem recorrer ao Lucene ou ao Sphinx (os quais eu conheço só de nome <_< ).

 

Estava eu pensando... Já que FULLTEXT é meio "perigoso" com grandes volumes de dados e se fosse combinado isso com ele?

 

Pelo visto dá até pra implementar Levenshtein no MySQL

 

Será que não reduziria peso que FULLTEXT coloca sobre a tabela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bruno,

 

O Zend tem um módulo que é uma implementação do Lucene para o PHP.

Ler mais aqui: http://framework.zend.com/manual/en/zend.search.lucene.html

 

Tem um tópico que acabei, meio que sem querer, escrevendo coisas sobre o assunto:

http://forum.imasters.com.br/topic/458917-busca-com-zend-search-lucene/

 

Sobre a questão de perigoso... Sei lá, não entendi muito bem. A implementação de qualquer busca textual precisa estar muito bem esclarecida pelo desenvolvedor/equipe. É uma estratégia diferente.

 

Quanto a busca por similaridade de documentos, bem... é um pouco mais complexo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Prog,

 

Então, pelos artigos que li, o perigo em usar o FTS no MySQL é em relação a problemas relacionados a "crash" do sistema de armazenamento. Tanto que citei um link no final do meu outro post.

 

Não por questões de performance, mas sim por problemas de armazenamento. Realmente não sei dizer o qual estável está na versão atual do MySQL, porque quando procurei na época que precisava (há uns 2 anos atrás, trabalhando em um sistema de Digital Asset Management) vi vários destes problemas (como o do post citado) circulando na net. Tanto que na época optamos por não usar.

 

A implementação de qualquer busca textual precisa estar muito bem esclarecida pelo desenvolvedor/equipe. É uma estratégia diferente.

 

Concordo plenamente contigo :thumbsup:

"With great power, comes great responsibility", uncle Ben :)

 

@braços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Interessante, num artigo postado pelo @hufersil há informações sobre a implementação de Full-Text Search em tabelas InnoDB. Pelo que li, rapidamente, isto é possível a partir da versão 5.6 do MySQL, mas não estou certo sobre em qual release.

 

No manual da versão 5.6 as tabelas InnoDB já estão devidamente documentadas.

http://dev.mysql.com/doc/refman/5.6/en/fulltext-search.html

 

O problema dele esta mais relacionado com crash de tabelas MyISAM, isto realmente era comum, embora isto também esteja bastante relacionado com o ambiente de implantação. O cenário atual é bem mais favorável.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É verdade, @Prog

 

Mas esta versão ainda está como desenvolvimento ;)

 

http://dev.mysql.com/downloads/mysql/5.6.html

 

Nesta hora vemos o qual importante é a equipe de desenvolvimento trabalhar junto com a que desenvolve o manual :D

 

@braços

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.