Funkcje indeksu pełnotekstowego
Rodzaje trybów wyszukiwania w pełni tekstu
Trzy rodzaje wyszukiwania można wykonać przy użyciu indeksu FullText, co wyjaśniono poniżej:
1. Tryb logiczny
Ten typ wyszukiwania służy do zapytań zawierających operatorów logicznych, takich jak operator mniej niż (''), plus znak ('+'), minus znak ('-'), podwójne cytaty („”), dzikie operator („”), Wildcard Operator ( „*) itp.
2. Tryb języka naturalnego
Domyślny typ wyszukiwania interpretuje ciąg wyszukiwania jako fazę dosłowną.
3. Tryb rozszerzenia zapytania
Wyszukiwanie odbywa się dwa razy w tym typu wyszukiwanie. Drugie wyszukiwanie jest stosowane do wyniku pierwszego wyszukiwania, aby znaleźć najbardziej odpowiednie wyjście wyszukiwania.
Wymagania wstępne
Utwórz tabelę z danymi w bazie danych MySQL, aby sprawdzić korzystanie z pełnego wyszukiwania w MySQL. Otwórz terminal i połącz się z serwerem MySQL, wykonując następujące polecenie:
$ sudo mysql -u rootUruchom następujące polecenie, aby utworzyć nazwaną bazę danych test_db:
Utwórz bazę danych test_db;Uruchom następujące polecenie, aby wybrać bazę danych:
Użyj test_db;Uruchom następujące zapytanie, aby utworzyć tabelę o nazwie klienci z pięcioma dziedzinami:
Utwórz klientów tabeli (Uruchom następujące zapytanie wstaw, aby wstawić cztery rekordy do klienci tabela.
Wstaw do „Klienci” („id”, „nazwa”, „e -mail”, „adres”, „contact_no”) wartości)Uruchom następujące polecenie, aby dodać indeks FullText dla adres pole klienci tabela:
Zmieniani klienci Table Dodaj FullText (Adres);Uruchom następujące polecenie, aby sprawdzić listę zdefiniowanych indeksów klienci tabela:
Pokaż indeks od klientów;Wyjście
Poniższe dane wyjściowe pokazuje, że istnieją dwa indeksy dla klienci tabela. Jednym z nich jest indeks BTREE, który został domyślnie zdefiniowany dla pola podstawowego, a drugi to wskaźnik pełnotekstowy, który został zdefiniowany później dla adres pole:
Zastosowania wyszukiwania pełnego tekstu
Wyszukiwanie w tabeli przy użyciu różnych trybów indeksu FullText pokazano w tym samouczku.
Wyszukiwanie pełnotekstowe w trybie boolowskim
Poniższe zapytanie wybierz wyszukiwanie słowa 'Dhanmondi' w adres pole klienci Tabela w trybie logicznym. klienci Tabela zawiera tylko jeden rekord pasujący do tego kryterium:
Wybierz * od klientów, gdzie dopasuj się (adres) przeciwko („Dhanmondi” w trybie boolowskim);Wyjście
Następujące dane wyjściowe pojawią się po wykonaniu poprzedniego zapytania:
Uruchom następujące zapytanie Wybierz, aby wyszukać oba słowa 'Dhaka ' I 'Jigatola ' w adres pole klienci Tabela za pomocą indeksu FullText w trybie logicznym. W dwóch rzędach w klienci Tabela zawierająca oba słowa 'Dhaka ' I 'Jigatola ':
Wybierz * od klientówWyjście
Następujące dane wyjściowe pojawią się po wykonaniu poprzedniego zapytania. Dane wyjściowe pokazuje, że adres pole zawiera 'Dhaka ' I 'Jigatola ':
Uruchom następujące zapytanie Wybierz, aby wyszukać rzędy tabeli klientów, które zawierają słowo 'Dhaka ' ale nie zawiera słowa 'Jigatola ' w adres pole klienci Tabela za pomocą wskaźnika pełnotekstowego w trybie boolowskim. W dwóch rzędach istnieją w klienci Tabela pasująca do kryteriów:
Wybierz * od klientów, gdzie dopasuj się (adres) przeciwko („Dhaka -Jigatola” w trybie boolean);Wyjście
Następujące dane wyjściowe pojawią się po wykonaniu poprzedniego zapytania. Dane wyjściowe pokazuje adres pole zawiera 'Dhaka ' ale nie 'Jigatola ':
Wyszukiwanie pełnotekstowe w trybie języka naturalnego
Uruchom następujące polecenie, aby dodać indeks FullText dla nazwa pole klienci tabela:
Zmieniani klienci Table Dodaj FullText (Nazwa);Poniższe zapytanie wybierz wyszukiwanie słowa 'Sankar ' w nazwa pole klienci Tabela w trybie języka naturalnego. klienci Tabela zawiera dwa rekordy pasujące do tego kryterium:
Wybierz * od klientówWyjście
Następujące dane wyjściowe pojawią się po wykonaniu poprzedniego zapytania. Rzędy zawierająceSARKAWartość R 'w nazwa Pole zostało pokazane na wyjściu:
Wyszukiwanie pełnotekstowe w trybie rozszerzenia zapytania
Poniższe zapytanie wybierz wyszukiwanie słowa 'laboni ' w nazwa pole klienci Tabela w trybie rozszerzenia zapytania. klienci Tabela zawiera dwa rekordy pasujące do tego kryterium:
Wybierz * od klientówWyjście
Następujące dane wyjściowe pojawią się po wykonaniu poprzedniego zapytania. W wyjściu pole nazwy pierwszego wiersza zawiera słowoLaboni ' innym słowem ”Sarkar ', a pole nazwy drugiego rzędu zawiera pasujące słowo ”Sarkar '.
Upuść indeks FullText
Uruchom następujące polecenie, aby upuścić indeks pełny tekst nazwa pole:
Zmieniaj tabelę klientów upuszcza nazwę indeksu;Uruchom następujące polecenie, aby sprawdzić bieżącą listę indeksu klienci Tabela po usunięciu indeksu pełnotekstowego z nazwa pole:
Pokaż indeks od klientów;Wyjście
Następujące dane wyjściowe pojawią się po wykonaniu poprzedniego zapytania. Dane wyjściowe pokazuje, że klienci Tabela zawiera jeden wskaźnik Btree dla ID pole i jeden tekst dla adres pole:
Wniosek
W tym samouczku pokazano różne sposoby wyszukiwania zawartości w tabeli za pomocą indeksu pełnotekstowego, aby pomóc nowym użytkownikom MySQL. Ponadto omówiono pełne funkcje indeksu pełnotekstowego. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź inne artykuły w Linux, aby uzyskać więcej wskazówek i samouczków.