Infelizmente, pesquisas full-text ainda possui poucos parâmetros de ajuste, embora adicionar alguns seja de grande prioridade no TODO. Se você tiver uma distribuição fonte do MySQL (see Secção 2.3, “Instalando uma distribuição com fontes do MySQL”), você pode exercer maior controle sobre o comportamenteo de pesquisas full-text.
Note que o busca full-text foi cuidadosamente ajustada para a melhor busca efetiva. Mofificar o comportamento padrão irá, na maioria dos casos, apenas tornar os resultados de busca piores. Não alteren o fonte do MySQL a menos que você saiba o que está fazendo!
A descrição das variáveis full-text na lista a seguir devem ser configuradas no servidor na inicialização. Você não pode modificá-los dinamicamente enquanto o servidor estiver em execução.
O tamanho mínimo de palavras a serem indexadas é definido
pela variavel ft_min_word_len
do MySQL.
See Secção 4.6.8.4, “SHOW VARIABLES
”.
(Esta variável só está disponível a partir do MySQL versão 4.0.)
O valor padrão é quatro caracteres. Altere-o para o valor
de sua preferência e reconstrua os seus índices
FULLTEXT
. Por exemplo, se você quiser
pesquisar palavras de três caracteres, você pode definir
esta variável colocando a seguinte linha no arquivo de
opções:
[mysqld] ft_min_word_len=3
Então reinicie o servidor e reconstrua seus índices
FULLTEXT
.
A lista de palavras de parada pode ser carregada do arquivo
especificado pela variável
ft_stopword_file
. See
Secção 4.6.8.4, “SHOW VARIABLES
”. Reconstrua o seu índice
FULLTEXT
depois de modificar a lista de
palavras de parada. (Esta varável só está disponível a
partir do MySQL versão 4.0.10 e posterior)
O ponto inical de 50% é determinado pelo esquema de pesagem
particular escolhido. Para disabilitá-lo, altere a seguinte
linha em myisam/ftdefs.h
:
#define GWS_IN_USE GWS_PROB
Para:
#define GWS_IN_USE GWS_FREQ
Então recompile o MySQL. Não há necessidade de
reconstruir o índice neste caso.
Note: fazendo isto você
diminui em muito a
habilidade do MySQL fornecer valores de relevância
adequados para a função MATCH()
. Se
você realmente precisa buscar por tais palavras comuns,
seria melhor fazê-lo utilizando IN BOOLEAN
MODE
, que não observa o poonto inicial de 50%.
Algumas vezes o mantedor do mecanismo de busca gostaria de
alterar os operadores usados por busca full-text boolanas.
Eles são definidos pela variável
ft_boolean_syntax
. See
Secção 4.6.8.4, “SHOW VARIABLES
”. Ainda, esta variável é
somente leitura; este valor está definido em
myisam/ft_static.c
.
Para mudanças full-text que exigem que você reconstrua seu
índice FULLTEXT
, o modo mais fácil de
fazê-lo para uma tabela MyISAM
é usar a
seguinte instrução, a qual reconstroi o arquivo de índice:
mysql> REPAIR TABLE nome_tabela QUICK;
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.