MySQL
Ricerca full-text
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);