O banco de dados MySQL permite que você realize pesquisas em linguagem natural em qualquer campo personagem baseado através da utilização de um índice FULLTEXT . A pesquisa de texto completo usa stopwords (palavras que não serão pesquisados , como a , e , o que ) , pesquisas booleanos e avaliações de relevância para retornar resultados que mais intimamente combina com o que você está procurando . O Básico
pesquisa em linguagem natural significa que a frase ou palavra é procurado como se fosse falado , sem operadores especiais . Para uma pesquisa de linguagem natural MySQL as seqüências de pesquisa deve ter entre quatro e 254 caracteres e as palavras devem ser separadas por um delimitador , como um espaço , vírgula ou período. O analisador MySQL não pode separar palavras sem algum tipo de delimitador. O analisador irá remover quaisquer palavras irrelevantes de palavras de pesquisa ( consulte Recursos para obter uma lista de palavras ) . As palavras irrelevantes não fará parte da pesquisa e se houver apenas palavras irrelevantes na busca nenhum resultado será retornado.
Cada linha que coincide com os parâmetros de pesquisa é dada uma classificação de relevância e os resultados são retornados com base na classificação , do maior para o menor . Pesquisas que correspondem mais de 50 por cento das linhas ou menos de três linhas de dados não são retornados . Isso é muito diferente da função LIKE ( ), que funciona como uma expressão regular , em busca da palavra exata , independentemente da colocação e frequência de ocorrência.
A Syntax
a fim de apoiar a pesquisa de texto completo, a tabela deve ser criada com um índice de texto completo e as colunas indexadas deve ter um tipo de dados de caracteres ( CHAR, VARCHAR, ou tEXT) .
criar artigos de tabela ( id int ( 10 ) PADRÃO '0 ' AUTO_INCREMENT , DATE date_posted , categoria INT (2), título VARCHAR ( 255) NOT NULL, artigo TEXT NOT NULL, PRIMARY KEY (id) , FOREIGN KEY (categoria) , FULLTEXT ( título do artigo ) );
Para consultar os dados , você deve usar uma instrução SELECT como :
SELECT ID , título dos artigos ONDE MATCH ( título do artigo ) AGAINST ( 'MySQL ');
a cláusula de jogo deve ser exatamente o mesmo que os campos especificados no índice FULLTEXT .
Para usar um lugar de busca booleana as palavras " eM BOOLEAN MODE ", após a seqüência de pesquisa.
SELECT ID , título dos artigos ONDE MATCH ( título do artigo ) AGAINST ( '+ MySQL- PHP ' IN BOOLEAN MODE );
Esta consulta irá combinar todos os artigos que contenham a string " MySQL ", mas não contêm o string " PHP ". Para obter uma lista completa dos operadores booleanos consulte Recursos abaixo.