SQLite Search Full Text

SQLite Search Full Text
Nel database, il componente della tabella virtuale FTS5 viene utilizzato per fare ricerche complete. Una tabella virtuale è un plug -in personalizzabile SQLite. Una tabella virtuale è simile a una tabella normale. La distinzione tra una tabella virtuale e una tabella normale sarebbe da dove provengono i dati. SQLite query Lo schema del database per ottenere dati durante l'elaborazione di una tabella normale. Ogni volta che visiti un tavolo virtuale, SQLite, d'altra parte, invoca il codice del programma per recuperare i contenuti. Alcune attività, come l'ottenimento di dati da numerosi set di dati, possono essere gestite mediante codice personalizzato con logica specifica.

Iniziamo con questo articolo avviando SQLite Database- C-Library di SQL sul sistema. Per questo, prova la parola chiave "sqlite3" come istruzione sulla shell e sei a posto. È stato lanciato il terminale per il database SQLite. Abbiamo provato il .Tabelle Istruzioni nella sua area di query per elencare tutte le tabelle già esistenti del database. Sfortunatamente, non abbiamo tabelle nel database in questo momento. Pertanto, dobbiamo creare una tabella per eseguire una ricerca full-text.

Creiamo un nuovo test della tabella nel database SQLite utilizzando la query di tabella Crea del database. Questa tabella conterrà la colonna ID di tipo intero e il titolo di tipo di testo. Entrambe le colonne non devono essere nulle secondo la query della tabella Crea.

Crea test della tabella (ID Int Key Primary, Testo del titolo non null);

Dopo la creazione di una tabella di test, dobbiamo inserire alcuni valori. Abbiamo aggiunto i valori per entrambe le colonne ID e titolo come mostrato. Successivamente, abbiamo provato l'istruzione "Seleziona" con il carattere "*" per recuperare tutti i record appena inseriti di una tabella di test.

INSERIRE IN TEST (ID, Titolo) Valori (1, 'Wonders');
INSERIRE IN VALORI TEST (ID, TITTO) (2, "Maleficient");
INSERIRE IN TEST (ID, TITY) VALORI (3, 'Doctor Strange');
INSERIRE IN TEST (ID, TITOLE) VALORI (4, 'Lucky');
INSERIRE IN TEST (ID, TITOLO) VALORI (5, 'RUSH'); Seleziona * dal test;

Cerchiamo la ricerca full-text dalla colonna del titolo della tabella di test in cui il record corrisponde "FTS5".

Seleziona * da Test Where Where Match 'FTS5';

Andiamo avanti per eseguire una ricerca full-text sul tavolo. La ricerca full-text può essere utilizzata anche sulle tabelle virtuali. Pertanto, dobbiamo creare una nuova tabella virtuale. Per questo, abbiamo utilizzato il comando Crea Virtual Table insieme al nome di una tabella, "Data". Seguito dalla parola chiave usando FTS5 e i nomi delle colonne tra le staffe. Queste colonne non contengono alcun tipo di dati mentre è stata applicata la creazione di una tabella come FTS5.

Crea dati della tabella virtuale utilizzando FTS5 (titolo, informazioni);

Dopo aver creato la tabella virtuale, dobbiamo inserire record nelle due colonne "titolo" e "informazioni" di una tabella "dati". Quindi, abbiamo aggiunto un totale di 5 record all'interno di entrambe le colonne "Titolo" e "Informazioni" di una tabella di dati. Puoi vedere che le colonne contengono valori di testo contenenti piccole e grandi quantità di dati all'interno.

Inserisci i valori dei dati (titolo, info) ("Wonders", questo film è circa 7 amici bloccato nella terra delle meraviglie.

Ha guadagnato un totale di 230 milioni di dollari);

Inserisci i valori dei dati (titolo, info) ("maleficiente", questo film parla di fantasia, magia e romanticismo famoso sui giovani. Guadagnato totale di 300 milioni di dollari);
Inserisci i valori dei dati (titolo, info) ("Inception", questo film riguarda il cambiamento del tuo futuro facendo ai sogni. Ha guadagnato un totale di 500 milioni di dollari);
Inserisci i valori dei dati (titolo, info) ('2020', 'questo film ritrae che il mondo incontrerà la sua fine nel 2020 dopo aver colpito un enorme tsunami. Ha guadagnato un totale di 600 milioni di dollari);
Inserisci i valori dei dati (titolo, info) ("Doctor Strange", "Riguarda la magia e il suo uso per guarire. Ha guadagnato un totale di 800 milioni di dollari);

Dopo aver aggiunto i record, abbiamo recuperato tutti i suoi dati utilizzando l'istruzione Seleziona con il carattere '*' nella query seguita dal nome di una tabella Dati. Ha visualizzato tutti e 5 i record.

Cerchiamo il testo completo nelle colonne di una tabella dati. Per questo, abbiamo utilizzato l'istruzione Seleziona con la stringa corrispondente "FTS5" nella query. La clausola Where contiene la condizione che la tabella dei dati deve corrispondere alla stringa "FTS5" secondo la parola chiave di corrispondenza. Puoi anche sostituire Match con l'operatore "=". Si scopre che non c'è stringa "fts5" nella tabella.

Seleziona * da dati in cui i dati corrispondono a 'fts5';
Seleziona * da dati in cui data = 'fts5';

Quindi, abbiamo aggiunto un nuovo record nella tabella che contiene il modello "FTS5" nel suo contenuto. Finora abbiamo provato l'inserto nell'istruzione. Dopo aver visualizzato ancora una volta i dati di una tabella, abbiamo visto che è stato visualizzato anche il record inserito.

Applichiamo la ricerca a full-text nella tabella di dati utilizzando l'istruzione Seleziona seguita dalla parola chiave corrispondente e dal modello di stringa "FTS5" per visualizzare gli unici record contenenti il ​​modello specifico. Ha visualizzato un singolo record sul nostro schermo. La stessa query è stata eseguita con l'operatore "=" anziché con la parola chiave Match e ha visualizzato lo stesso output.

Seleziona * da dati in cui i dati corrispondono a 'fts5';
Seleziona * da dati in cui data = 'fts5';
Seleziona * da dati ('fts5');

Visualizziamo i record della tabella nell'ordine più pertinente dei record inseriti. Per questo, useremo l'opzione "rango" nella query. Quindi, abbiamo utilizzato la ricerca full-text per cercare le "meraviglie" del testo dai dati della tabella tramite la parola chiave Match e l'ordine delle clausole seguendo l'opzione "rango". Ha visualizzato un singolo record dalla tabella.

Seleziona * Da dati in cui i dati corrispondono all'ordine di "Wonders" per rango;

Un altro modo per eseguire una ricerca full-text è l'utilizzo del modello tra le staffe dopo il nome della tabella nell'istruzione Seleziona.

Seleziona * da dati ('magia');

È inoltre possibile utilizzare la ricerca full-text per cercare i valori del pattern prefisso dal contenuto della tabella. Per utilizzare i prefissi, è necessario aggiungere i primi da due a tre caratteri seguiti dal carattere "*". Questo valore prefisso può essere utilizzato tra le staffe dell'istruzione Seleziona. Ora, l'uso di "Ro*" sta mostrando il singolo record per il film Maleficent le cui informazioni di descrizione contiene il prefisso "Ro" per "Romance".

Seleziona * da dati ('ro *');

Puoi anche limitare la ricerca di un modello all'altro usando l'operatore non. Dato che abbiamo usato la magia non il testo, quindi ha mostrato due record per il modello magico.

Seleziona * da dati in cui i dati corrispondono "magia non testo";

Conclusione

Questa guida riguarda l'uso della ricerca full-text nel database SQLite utilizzato in Ubuntu 20.04. Usando FTS5, possiamo cercare un modello specifico insieme ad alcune condizioni. Questo articolo dettagliato ti aiuterà a cercare il testo in sqlite.