SQLite Pełne wyszukiwanie tekstu

SQLite Pełne wyszukiwanie tekstu
W bazie danych komponent wirtualnej tabeli FTS5 służy do wykonywania kompleksowych wyszukiwań. Wirtualna tabela to wtyczka konfigurowalna SQLite. Wirtualna tabela jest podobna do zwykłej tabeli. Rozróżnienie między tabelą wirtualną a zwykłą tabelą wynosiby skąd pochodzą dane. SQLITE pyta schemat bazy danych w celu uzyskania danych podczas przetwarzania regularnej tabeli. Ilekroć odwiedzasz wirtualną tabelę, SQLite, z drugiej strony, wywołuje kod programu, aby pobrać zawartość. Niektóre działania, takie jak uzyskiwanie danych z wielu zestawów danych, można obsługiwać przez dostosowany kod z określoną logiką.

Zacznijmy od tego artykułu, uruchamiając bazę danych SQLITE- CLIBRARY SQL w twoim systemie. W tym celu wypróbuj słowo kluczowe „SQLite3” jako instrukcję na powładzie, a możesz iść. Uruchomiono terminal do bazy danych SQLITE. Próbowaliśmy .Instrukcja tabel w obszarze zapytania, aby wymienić wszystkie już istniejące tabele bazy danych. Niestety nie mamy teraz żadnych tabel w bazie danych. Dlatego musimy utworzyć tabelę, aby przeprowadzić wyszukiwanie w pełnym teście.

Utwórzmy nowy test tabeli w bazie danych SQLITE za pomocą zapytania Table Table w bazie danych. Ta tabela będzie zawierać kolumnę identyfikatora typu liczb całkowitych i tytuł typu tekstu. Obie kolumny nie mogą być zerowe zgodnie z zapytaniem Table Table.

Utwórz test tabeli (Id int podstawowy klucz, tekst nie null);

Po utworzeniu tabeli testowej musimy włożyć do niej pewne wartości. Dodaliśmy wartości zarówno dla identyfikatora kolumn, jak i tytułu, jak pokazano. Następnie wypróbowaliśmy instrukcję „Wybierz” z znakiem „*”, aby pobrać wszystkie nowo wstawione rekordy tabeli testowej.

Wstaw do testu (id, tytuł) wartości (1, „cuda”);
Wstaw do testu (id, tytuł) Wartości (2, „menurentnent”);
Wstaw wartości testu (ID, tytuł) (3, „Doctor Strange”);
Wstaw wartości testu (ID, tytuł) (4, „Lucky”);
Wstaw do testu (ID, tytuł) (5, „Rush”); Wybierz * z testu;

Poszukajmy pełnego tekstu wyszukiwania z kolumny tytułowej tabeli testowej, w której rekord pasuje do „FTS5”.

Wybierz * Z testu, w którym tytuł „FTS5”;

Przejdźmy do przodu, aby przeprowadzić pełny tekst wyszukiwania na stole. Wyszukiwanie w pełnym teście można również użyć na wirtualnych tabelach. Dlatego musimy utworzyć nową wirtualną tabelę. W tym celu użyliśmy polecenia Utwórz wirtualną tabelę wraz z nazwą tabeli „Dane”. A następnie słowo kluczowe za pomocą FTS5 i nazwy kolumn w nawiasach. Te kolumny nie zawierają żadnych typów danych podczas tworzenia tabeli w miarę zastosowania FTS5.

Utwórz wirtualne dane tabeli za pomocą FTS5 (tytuł, informacje);

Po utworzeniu tabeli wirtualnej musimy wstawić rekordy w dwóch kolumnach „Tytuł” ​​i „Informacje” tabeli „Dane”. Dlatego dodaliśmy w sumie 5 rekordów w obu kolumnach „tytuł” ​​i „Informacje” tabeli danych. Możesz zobaczyć, że kolumny zawierają wartości tekstowe zawierające małe i duże ilości danych w środku.

Wstaw dane (tytuł, Info) („cuda”, ten film jest około 7 przyjaciół utknięty w krainie cudów.

Zarobił łącznie 230 milionów dolarów);

Wstaw wartości danych (tytuł, informacje) („Malefice”, ten film opowiada o fantazji, magii i romansie sławnym o młodzieżach. Zarobiono w sumie 300 milionów dolarów);
Wstaw wartości danych (tytuł, informacje) („Incepcja”, ten film dotyczy zmiany przyszłości, robiąc sny. Zarobił łącznie 500 milionów dolarów);
Wstaw wartości danych (tytuł, Info) („2020”, ten film przedstawia, że ​​świat się skończy w 2020 roku po osiągnięciu ogromnego tsunami. Zarobił w sumie 600 milionów dolarów);
Wstaw wartości danych (tytuł, informacje) („Doctor Strange”, „Chodzi o magię i jej użycie do leczenia. Zarobił łącznie 800 milionów dolarów);

Po dodaniu rekordów pobieramy wszystkie jego dane za pomocą instrukcji Wybierz z znakiem „*” w zapytaniu, a następnie nazwa danych tabeli. Wyświetlał wszystkie 5 rekordów.

Poszukajmy pełnego tekstu w kolumnach danych tabeli. W tym celu użyliśmy instrukcji Wybierz z pasującym ciągiem „FTS5” w zapytaniu. Klauzula Where zawiera warunek, że tabela danych musi dopasować ciąg „FTS5” zgodnie ze słowem kluczowym dopasowania. Możesz również wymienić dopasowanie operatora „=”. Okazuje się, że w tabeli nie ma ciągów „fts5”.

Wybierz * z danych, w których dane pasują do „FTS5”;
Wybierz * z danych, gdzie dane = „fts5”;

Więc dodaliśmy nowy rekord w tabeli, który zawiera wzór „FTS5” w jego treści. Do tej pory wypróbowaliśmy wkładkę do instrukcji. Po ponownym wyświetleniu danych danych tabeli widzieliśmy, że wyświetlono również nowo wstawiany rekord.

Zastosujmy wyszukiwanie pełnotekstowe w tabeli danych za pomocą instrukcji wybierz, a następnie dopasowanie słowa kluczowego i wzorca ciągów „FTS5”, aby wyświetlić jedyne rekordy zawierające określony wzór. Wyświetlał pojedynczy rekord na naszym ekranie. To samo zapytanie zostało wykonane za pomocą operatora „=” zamiast słowa kluczowego dopasowania i wyświetlało to samo wyjście.

Wybierz * z danych, w których dane pasują do „FTS5”;
Wybierz * z danych, gdzie dane = „fts5”;
Wybierz * z danych („FTS5”);

Wyświetlmy rekordy tabeli w najwięcej do najmniej istotnej kolejności włożonych rekordów. W tym celu będziemy używać opcji „ranga” w zapytaniu. Używamy więc wyszukiwania pełnego tekstu do wyszukiwania tekstu „cuda” z danych tabeli za pomocą słowa kluczowego dopasowania i kolejności według klauzul po opcji „ranga”. Wyświetlał pojedynczy rekord z tabeli.

Wybierz * Z danych, w których dane pasują do „cudów” kolejności według rangi;

Innym sposobem przeprowadzenia wyszukiwania w pełnym teście jest użycie wzorca w nawiasach po nazwie tabeli w instrukcji Wybierz.

Wybierz * z danych („magia”);

Możesz także użyć wyszukiwania pełnego tekstu, aby wyszukać wartości wzoru prefiksu z treści tabeli. Aby użyć prefiksów, musisz dodać pierwsze dwa do trzech znaków, a następnie postać „*”. Ta wartość prefiksu może być używana w nawiasach Wybierz instrukcję. Teraz użycie „Ro*” wyświetla pojedynczy rekord dla filmu Maleficent, którego informacje opisują prefiks „RO” dla „Romance”.

Wybierz * z danych („ro *”);

Możesz również ograniczyć wyszukiwanie jednego wzorca do drugiego za pomocą operatora not. Ponieważ używamy magii, a nie tekstu, wyświetlił dwie rekordy dla magicznego wzoru.

Wybierz * z danych, w których dane pasują do „Magic Not Text”;

Wniosek

W tym przewodniku dotyczy korzystania z wyszukiwania pełnotekstowego w bazie danych SQLite używanej w Ubuntu 20.04. Korzystając z FTS5, możemy wyszukać określony wzór wraz z pewnymi warunkami. Ten szczegółowy artykuł pomoże Ci wyszukiwać tekst w SQLite.