Ricerca…


introduzione

MySQL offre la ricerca FULLTEXT. Cerca nelle tabelle con colonne contenenti testo le corrispondenze migliori per parole e frasi.

Osservazioni

FULLTEXT ricerca FULLTEXT funziona stranamente su tabelle contenenti piccoli numeri di righe. Quindi, quando lo stai sperimentando, potresti trovare utile ottenere un tavolo di medie dimensioni online. Ecco una tabella di articoli di libri , con titoli e autori. Puoi scaricarlo, decomprimerlo e caricarlo in MySQL.

FULLTEXT ricerca FULLTEXT è destinata all'uso con l'assistenza umana. È progettato per fornire più corrispondenze di una normale WHERE column LIKE 'text%' un'operazione di filtraggio WHERE column LIKE 'text%' .

FULLTEXT ricerca FULLTEXT è disponibile per le tabelle MyISAM . È anche disponibile per le tabelle InnoDB in MySQL versione 5.6.4 o successiva.

Semplice ricerca FULLTEXT

    SET @searchTerm= 'Database Programming';
 SELECT MATCH (Title) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE) Score,
        ISBN, Author, Title 
   FROM book
  WHERE MATCH (Title) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE)
  ORDER BY MATCH (Title) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE) DESC;

Data una tabella denominata book con colonne denominate ISBN , "Titolo" e "Autore", trova i libri corrispondenti ai termini 'Database Programming' . Mostra prima le migliori partite.

Affinché ciò funzioni, è necessario che sia disponibile un indice di testo completo nella colonna Title :

ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_index (Title);

Semplice ricerca BOOLEAN

    SET @searchTerm= 'Database Programming -Java';
 SELECT MATCH (Title) AGAINST (@searchTerm IN BOOLEAN MODE) Score,
        ISBN, Author, Title 
   FROM book
  WHERE MATCH (Title) AGAINST (@searchTerm IN BOOLEAN MODE)
  ORDER BY MATCH (Title) AGAINST (@searchTerm IN BOOLEAN MODE) DESC;

Data una tabella denominata book con colonne denominate ISBN , Title e Author , cerca i libri con le parole 'Database' e 'Programming' nel titolo, ma non con la parola 'Java' .

Affinché ciò funzioni, è necessario che sia disponibile un indice di testo completo nella colonna Titolo:

ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_index (Title);

Ricerca FULLTEXT multi-colonna

    SET @searchTerm= 'Date Database Programming';
 SELECT MATCH (Title, Author) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE) Score,
        ISBN, Author, Title 
   FROM book
  WHERE MATCH (Title, Author) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE)
  ORDER BY MATCH (Title, Author) AGAINST (@searchTerm IN NATURAL LANGUAGE MODE) DESC;

Data una tabella denominata libro con colonne denominate ISBN , Title e Author , vengono trovati libri corrispondenti ai termini "Programmazione database data". Mostra prima le migliori partite. Le migliori corrispondenze includono libri scritti dal Prof. CJ Date.

(Ma una delle migliori corrispondenze è anche The Date Doctor's Guide to Dating: come ottenere da First Date a Perfect Mate . Questo mostra una limitazione della ricerca FULLTEXT: non pretende di capire cose come parti del discorso o il significato delle parole indicizzate.)

Perché ciò avvenga, deve essere disponibile un indice di testo completo nelle colonne Titolo e Autore:

ALTER TABLE book ADD FULLTEXT INDEX Fulltext_title_author_index (Title, Author);


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow