Wyszukiwanie pełnotekstowe MongoDB

Wyszukiwanie pełnotekstowe MongoDB
Ze względu na szybką reaktywność, zaawansowaną wersję, zrównoważony rozwój i silne możliwości indeksowania, MongoDB jest jedną z najbardziej znanych baz danych NoSQL. W wielu przypadkach zapytania MongoDB, które klasyfikują dane, szukając precyzyjnych dopasowań, wystarczą znacznie większe i mniejsze niż porównania lub zastosowanie wyrażeń regularnych. Jednak jeśli chodzi o badania przesiewowe na pola z bogatymi danymi tekstowymi, strategie te nie są krótkie. Ten przewodnik pomoże nam utworzyć indeks tekstu MongoDB i użyć go do wyszukiwania dokumentów wykorzystujących wspólne zapytania i kryteria wyszukiwania w pełnym teście.

Kiedy widzimy materiały wykorzystujące wyrażenia lub słowa kluczowe, najlepszym przykładem jest wyszukiwanie w Google. Dzięki wyszukiwaniu pełnotekstowego MongoDB możemy ustalić indeks tekstu w dowolnej kolumnie w dokumencie za pomocą ciągu lub tablic ciągów.

Składnia wyszukiwania pełnotekstowego w MongoDB w Ubuntu 20.04 ?

Wspomniana składnia jest następująca:

db.Collection_name.Znajdź ($ text: $ Search: „String”)

Funkcja Find () jest używana z następującymi parametrami w powyższej składni:

  • Collection_name: odnosi się do nazwy istniejącej kolekcji.
  • Znajdować: Wykonane do wyszukiwania za pomocą znaleziska.
  • $ tekst: używane do wyszukiwania kolekcji, które spełnia nasze cele.
  • $ wyszukiwanie: Służy do przeprowadzania wyszukiwania.
  • Strunowy: odnosi się do określonego ciągu, którego chcemy szukać w kolekcji, i możemy użyć funkcji wyszukiwania, aby znaleźć dokładne słowa.

Praca nad operatorem tekstu $ w MongoDB w Ubuntu 20.04:

Listy tekstowe są dostarczane przez MongoDB, aby wspomagać wyszukiwanie tekstu w treści ciągów. Każde pole o wartości ciągu lub zakresie elementów ciągów może być zawarte w rekordach tekstowych. W swojej kolekcji powinieneś mieć płytę tekstową do wykonywania pytań tekstowych. Nawet kolekcja ma tylko jeden rekord wyszukiwania tematu. Lista może obejmować wiele pól.

Jak występuje wyszukiwanie pełnotekstowe w MongoDB w Ubuntu 20.04

Teraz spójrz na pewne przykłady, aby lepiej zrozumieć rzeczy. Najpierw stworzyliśmy bazę danych o nazwie „MyDemo”. W tej bazie danych zdefiniowaliśmy kolekcję jako „owoce”. Następnie zapytanie InsertMany służy do wstawiania dokumentu zbioru, ponieważ zrzut ekranu wyświetla pola i wartości w stosunku do tych pól dla poniższego dokumentu „Owoce” kolekcji.

Zapytanie „DB.owoce.Znajdź () ”wyniki w atrybutach i podmiotach kolekcji„ owoce ”w następujący sposób. Mamy trzy dokumenty zarejestrowane do zbioru „owoców”.

Teraz sprawdźmy, jak możemy przeprowadzić wyszukiwanie w pełnym teście.

Przykład nr 1: Tworzenie indeksu tekstu w MongoDB w Ubuntu 20.04:

Musimy ustalić indeks tekstu na zestawie danych, zanim będziesz mógł użyć funkcji wyszukiwania pełnego tekstu MongoDB. Indeksy to unikalne struktury danych, które izolują ograniczone dane z każdego tekstu w kolekcji samych dokumentów. Rzućmy okiem, jak przeprowadzić wyszukiwanie w pełnym teście.

Indeks tekstu jest zbudowany w taki sam sposób jak indeks konwencjonalny, zamiast definiować kolejność rosnącą/malejącą, definiuje słowo kluczowe tekstu.

Powyżej mamy zapytanie do wyszukiwania w pełnym teście. Zastosowaliśmy metodę CreateIndex () do utworzenia indeksu tekstu. Ustawiamy dwa pola „Temat” i „Treść” na tekst typu indeksu.

Uruchamiając zapytanie CreateIndex na powładzie MongoDB, następujące dane wyjściowe potwierdza tworzenie indeksu:

Przykład nr 2: Wyszukuje słowo lub frazę z pełnego tekstu w MongoDB w Ubuntu 20.04:

Poszukiwanie dokumentów obejmujących jedno lub więcej pojedynczych słów jest być może najbardziej powszechnym wyzwaniem wyszukiwania. Użytkownicy prawdopodobnie spodziewają się, że przeglądarka internetowa będzie dostosowana do wyboru, gdzie powinny wyświetlić określone wyrażenia wyszukiwania. Podczas stosowania indeksów tekstowych MongoDB podchodzi do typowych zapytań wyszukiwania w ten sam sposób. Z kilkoma przykładami ten krok wyjaśnia, w jaki sposób MongoDB przetwarza żądania wyszukiwania.

Tutaj mamy zapytanie „DB.owoce.znajdować()". Zapytanie wykorzystuje operator $ tekst, który informuje MongoDB tutaj, że zapytanie będzie korzystać z indeksu tekstu, który wcześniej zdefiniowaliśmy. Ponadto w każdej kolekcji dozwolony jest tylko jeden indeks tekstu. Następnie, wewnątrz operatora $ tekst mamy innego operatora o nazwie $ Search, który służy do wyszukiwania wartości „słodkiej” z podanych dokumentów.

Jak widać, mamy tylko jeden dokument z treścią tekstową „słodką”. Uruchamiając powyższe zapytanie, wszystkie szczegóły dokumentu posiadające treść tekstu „słodkie” są wyświetlane w następujący sposób:

Teraz szukamy dwóch słów, używając następującego zapytania:

Dostaliśmy dwukrodzierne „witamina C” operatorowi wyszukiwania, który jest nazywany wewnątrz operatora tekstu $. Po uruchomieniu zapytania pokazuje rekord dokumentu posiadający witaminę C wymienioną w tekście w następujący sposób:

Przykład nr 3: Punktacja i sortowanie wyników wyszukiwania pełnego tekstu w MongoDB w Ubuntu 20.04:

Każdy dokument otrzymuje wynik z wyszukiwania tekstowego, które wskazuje, jak jest to istotne dla zapytania wyszukiwania. Ten wynik służy do kategoryzacji wszystkich rekordów w wyniku wyszukiwania. Wyższy wynik oznacza, że ​​konkurs jest bardziej znaczący.

Mamy operatora tekstu $, który przeszukuje dwa słowa „mango” i „pomarańczowe” z pomocą operatora wyszukiwania $. Następnie mamy projekcję partytura: $ meta: „Textscore”, który korzysta z $ meta operator, który zwraca określone metadane z pobranych dokumentów. Metadane TextScore, która jest wbudowanym elementem pełnego tekstu MongoDB i posiada wynik znaczenia wyszukiwania, zostaje zwrócona w tym przypadku.

Jak wspomniano w dokumencie filtra, powstałe dokumenty dodadzą nowe pole nazwane po wykonaniu zapytania:

Teraz użyliśmy funkcji sort dla projekcji Score: $ Meta: „Textscore”. Dokument sortowania używa tej samej składni co dokument projekcyjny.

Tekst Mango ma największy wynik trafności, więc jest najważniejszy na ekranie wyjściowym.

Wniosek:

Nabyliśmy, jak korzystać z funkcji wyszukiwania pełnotekstowego MongoDB, postępując zgodnie z tym samouczkiem. Zbudowałeś indeks tekstu i skomponowane zapytania tekstowe, które zawierały jedno i wiele słów, całe frazy i wyłączenia. Oceniłeś również znaczenie zwróconych dokumentów i zamówiłeś wyniki wyszukiwania, aby najpierw wyświetlić najbardziej odpowiednie elementy.