SQLite Volltext -Suche

SQLite Volltext -Suche
In der Datenbank wird die virtuelle FTS5 -Komponente für umfassende Suchanfragen verwendet. Eine virtuelle Tabelle ist ein anpassbares SQLite -Plugin. Eine virtuelle Tabelle ähnelt einer regulären Tabelle. Die Unterscheidung zwischen einer virtuellen Tabelle und einer regulären Tabelle wäre, woher die Daten stammen. SQLITE findet das Datenbankschema ab, um Daten bei der Verarbeitung einer regulären Tabelle zu erhalten. Wenn Sie eine virtuelle Tabelle besuchen, ruft SQLite hingegen den Programmcode auf, um den Inhalt abzurufen. Bestimmte Aktivitäten, z. B. das Erhalten von Daten aus zahlreichen Datensätzen, können mit spezifischem Code mit spezifischer Logik behandelt werden.

Beginnen wir mit diesem Artikel, indem wir die SQLite-Datenbank-C-Bibliothek von SQL auf Ihrem System starten. Probieren Sie hier das Schlüsselwort "SQLite3" als Anweisung auf der Shell aus, und Sie können loslegen. Das Terminal für die SQLite -Datenbank wurde gestartet. Wir haben die ausprobiert .Tabellenanweisung in seinem Abfragebereich, um alle bereits vorhandenen Tabellen der Datenbank aufzulisten. Leider haben wir derzeit keine Tabellen in der Datenbank. Somit müssen wir eine Tabelle erstellen, um eine Volltext-Suche durchzuführen.

Erstellen wir einen neuen Tabellentest in der SQLite -Datenbank mithilfe der Tabellenabfrage erstellen der Datenbank. Diese Tabelle enthält die ID -Spalte des Ganzzahltyps und den Titel des Texttyps. Beide Spalten dürfen nicht gemäß der Tischabfrage erstellen sein.

Tabellenversuch erstellen (ID -Int -Primärschlüssel, Titlext nicht null);

Nach der Erstellung einer Testtabelle müssen wir einige Werte hineinlegen. Wir haben die Werte für beide Spalten -ID und Titel wie gezeigt hinzugefügt. Danach haben wir die Anweisung "Auswählen" mit dem Zeichen "*" ausprobiert, um alle neu eingefügten Datensätze einer Testtabelle abzurufen.

In Test (ID, Titel) Werte (1, 'Wunder') einfügen;
In Test (ID, Titel) Werte (2, "Maleficient") einfügen;
In die Test (ID, Titel) einfügen (3, 'Doctor Strange');
In die Test (ID, Titel) einfügen (4, 'Lucky');
In Test (ID, Titel) Werte (5, 'Rush') einfügen; Aus dem test auswählen;

Suchen wir nach der Volltext-Suche aus der Title-Spalte der Testtabelle, in der der Datensatz mit „FTS5“ übereinstimmt.

Wählen Sie * aus dem Test, wobei der Titel "fts5" übereinstimmt

Lassen Sie uns vorwärts gehen, um eine Volltext-Suche auf der Tabelle durchzuführen. Die Volltext-Suche kann auch in den virtuellen Tabellen verwendet werden. Daher müssen wir eine neue virtuelle Tabelle erstellen. Dafür haben wir den Befehl Virtual Table zusammen mit dem Namen einer Tabelle "Daten" verwendet, die virtuelle Tabellen erstellen, "Daten". Gefolgt vom Schlüsselwort mit FTS5 und den Spaltennamen in den Klammern. Diese Spalten enthalten keine Datentypen, während die Erstellung einer Tabelle als FTS5 angewendet wurde.

Erstellen Sie virtuelle Tabellendaten mit FTS5 (Titel, Info);

Nach dem Erstellen der virtuellen Tabelle müssen wir Datensätze in den beiden Spalten "Titel" und "Info" einer Tabelle "Daten" einfügen,. Wir haben also insgesamt 5 Datensätze in beiden Spalten "Titel" und "Info" einer Datentabelle hinzugefügt. Sie können feststellen, dass die Spalten Textwerte enthalten, die kleine und große Datenmengen innerhalb enthalten.

Einfügen in Daten (Titel, Info) Werte ('Wunder', 'Dieser Film ist ungefähr 7 Freunde, die im Land der Wunder festsitzen.

Verdiente insgesamt 230 Millionen Dollar);

Einfügen in Daten (Titel, Info) Werte ('Maleficient', 'Dieser Film handelt von Fantasie, Magie und Romantik, die über Jugendliche berühmt ist. Verdiente insgesamt 300 Millionen Dollar);
Einfügen in Daten (Titel, Info) Werte ('Inception', 'In diesem Film geht es darum, Ihre Zukunft zu ändern, indem Sie Träume tun. Verdiente insgesamt 500 Millionen Dollar);
Einfügen in Daten (Titel, Info) Werte ('2020', 'Dieser Film zeigt, dass die Welt nach dem Schlagen eines riesigen Tsunami ihr Ende im Jahr 2020 treffen wird. Verdiente insgesamt 600 Millionen Dollar);
Einfügen in Daten (Titel, Info) Werte ('Doctor Strange', 'Es geht um Magie und ihre Verwendung, um zu heilen. Verdiente insgesamt 800 Millionen Dollar);

Nach dem Hinzufügen der Datensätze haben wir alle Daten mit dem Anweisungen ausgewählt mit dem Zeichen '*' in der Abfrage gefolgt vom Namen einer Tabellendaten ausgewählt. Es wurden alle 5 Datensätze angezeigt.

Suchen wir nach dem Volltext in den Spalten einer Tabellendaten nach dem Volltext. Zu diesem Zweck haben wir den Anweisungen mit der Matching -Zeichenfolge 'FTS5' in der Abfrage ausgewählt. Die WHERE -Klausel enthält die Bedingung, dass die Datentabelle mit der Zeichenfolge 'FTS5' gemäß dem Schlüsselwort für Match übereinstimmen muss. Sie können die Übereinstimmung auch durch den Operator "=" ersetzen. Es stellt sich heraus.

Wählen Sie * aus Daten, wobei Daten mit 'FTS5' übereinstimmen
Wählen Sie * aus Daten, wobei data = 'fts5';

Wir haben also einen neuen Datensatz in der Tabelle hinzugefügt, das das Muster 'FTS5' in seinem Inhalt enthält. Wir haben den Einsatz bisher noch einmal in Anweisungen ausprobiert. Nachdem wir die Daten einer Tabellendaten erneut angezeigt haben, haben wir gesehen, dass der neu eingefügte Datensatz ebenfalls angezeigt wurde.

Wenden wir die Volltext-Suche in der Datentabelle mit dem Anweisungsanweis an, gefolgt von der Schlüsselwort-Übereinstimmung und dem String-Muster 'FTS5', um die einzigen Datensätze anzuzeigen, die das spezifische Muster enthalten. Es zeigte einen einzelnen Datensatz auf unserem Bildschirm. Die gleiche Abfrage wurde mit dem Operator "=" anstelle des Streichholzschlüsselungsworts ausgeführt und zeigte die gleiche Ausgabe an.

Wählen Sie * aus Daten, wobei Daten mit 'FTS5' übereinstimmen
Wählen Sie * aus Daten, wobei data = 'fts5';
Wählen Sie * aus Daten ('fts5');

Lassen Sie uns die Datensätze der Tabelle in der am weitesten relevanten Reihenfolge der eingefügten Datensätze anzeigen. Dafür werden wir die Option "Rang" in der Abfrage verwenden. Wir haben also die Volltext-Suche verwendet, um über das Schlüsselwort der Übereinstimmung und die Bestellung nach Klauseln nach der Option "Rang" nach den Text "Wunder" zu suchen. Es zeigte einen einzelnen Datensatz aus der Tabelle.

Wählen Sie * aus Daten aus, wobei die Reihenfolge der Daten "Wunder" nach Rang entspricht

Eine andere Möglichkeit, eine Volltext-Suche durchzuführen.

Wählen Sie * aus Daten ('Magic');

Sie können auch die Volltext-Suche verwenden, um nach den Präfixmusterwerten aus dem Tabelleninhalt zu suchen. Um Präfixe zu verwenden, müssen Sie die ersten zwei bis drei Zeichen hinzufügen, gefolgt vom "*" -Scharakter. Dieser Präfixwert kann in den Klammern der Auswahlanweisung verwendet werden. Die Verwendung von „Ro*“ zeigt nun den einzelnen Datensatz für den Maleficent -Film an, dessen Beschreibungsinformationen das Präfix „RO“ für „Romantik“ enthält.

Wählen Sie * aus Daten ('Ro *');

Sie können die Suche nach einem Muster auch mit dem Notoperator auf das andere beschränken. Da wir den Magic Non -Text verwendet haben, zeigte sie also zwei Datensätze für das magische Muster.

Wählen Sie * aus Daten aus, wobei Daten mit 'Magie nicht Text' übereinstimmen

Abschluss

In dieser Handbuch geht es um die Verwendung der Volltext-Suche in der SQLite-Datenbank, die in Ubuntu 20 verwendet wird.04. Mit FTS5 können wir zusammen mit einigen Bedingungen nach einem bestimmten Muster suchen. Dieser detaillierte Artikel hilft Ihnen beim Durchsuchen von Text in SQLite.