Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como permitir a pesquisa de texto completo com hífens na consulta de pesquisa


A partir daqui http://dev.mysql.com/doc /refman/5.0/en/fulltext-search.html

Uma solução para encontrar uma palavra com travessões ou hífens é usar PESQUISA DE TEXTO COMPLETO NO MODO BOOLEAN, e colocar a palavra com o hífen / travessão entre aspas duplas.

Ou daqui http://bugs.mysql.com/bug.php?id=2095

Existe outra solução. Recentemente foi adicionado ao manual:"Modificar um arquivo de conjunto de caracteres:Isso não requer recompilação. A macro true_word_char() usa uma tabela de "tipo de caractere" para distinguir letras e números de outros caracteres. . Você pode editar o conteúdo em um dos caracteres defina XMLfiles para especificar que '-' é uma “letra”. Em seguida, use o conjunto de caracteres fornecido para seus índices FULLTEXT."

Não tentei por conta própria.

Edit:Aqui estão mais algumas informações adicionais aqui http:/ /dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html

Uma frase entre aspas duplas (""") corresponde apenas às linhas que contêm a frase literalmente, conforme foi digitada. O mecanismo de texto completo divide a frase em palavras e realiza uma pesquisa no índice FULLTEXT pelas palavras. Antes do MySQL 5.0.3, o mecanismo realizava uma pesquisa de substring para a frase nos registros encontrados, portanto, a correspondência deve incluir caracteres não-palavra na frase. A partir do MySQL 5.0.3, os caracteres não-palavra não precisam corresponder exatamente:A pesquisa de frase requer apenas que as correspondências contenham exatamente as mesmas palavras que a frase e na mesma ordem. Por exemplo, "testphrase" corresponde a "test, frase" no MySQL 5.0.3, mas não antes.

Se a frase não contiver palavras que estejam no índice, o resultado será vazio. Por exemplo, se todas as palavras forem palavras irrelevantes ou menores que o comprimento mínimo das palavras indexadas, o resultado será vazio.