Zapytanie lub wyszukiwanie – dlaczego nie oba?

(16 października 2020 r.)

Dzień 2 uczestnictwa w Couchbase Connect i, zgodnie z obietnicą, zagłębię się nieco więcej w niektóre aktualizacje zapytań N1QL, które mają wpływ na wyszukiwanie pełnotekstowe.

Na marginesie, zwykłem Pracowałem w Couchbase i byłem Product Managerem, który wprowadził na rynek produkt Full-Text Search – więc jest mi bliski nawet teraz. Dlatego w piątek wygłaszam wykład „Uproszczone wyszukiwanie tekstu” na tym samym wydarzeniu. Więcej na ten temat na końcu tego artykułu.

Wyszukiwanie pełnotekstowe (FTS aka Search) to osobny temat, ale wszystko, co musisz wiedzieć o tym artykule, to to, że jest to oddzielna usługa lub zestaw możliwości usługi zapytań typu N1QL SQL firmy Couchbase. Podobnie jak relacyjne bazy danych, N1QL wykorzystuje zestaw indeksów zwany Global Secondary Indexing (GSI).

Usługa Couchbase Search ma własny zestaw indeksów i umożliwia bardziej elastyczne wyszukiwanie tekstu w polach lub obiektach w dokumentach JSON z zaawansowaną znajomością języka.

Binh Les dyskusja Flex Index – wykorzystanie wyszukiwania ze standardowym predykatem SQL bez ograniczeń zapytań zagłębia się w funkcje N1QL, które pozwalają zapytaniom na użycie indeksów GSI lub FTS w zależności od potrzeb. Jest to fajna nowa funkcja i są dostępne na dwa sposoby.

Poniższe slajdy pochodzą z przemówienia Binha – zobacz całą rozmowę, aby uzyskać dużo głębsze informacje i kilka przykładów na żywo.

Aplikacje mogą wybrać wyszukiwanie pełnotekstowe lub zapytania oparte na GSI

N1QL z funkcją predykatu wyszukiwania

Pierwszym sposobem wykorzystania indeksu FTS w wyszukiwaniu N1QL jest dodanie SEARCH () predykat do klauzuli WHERE . Ta ilustracja przedstawia różne sposoby wykonywania zapytań w usługach Couchbase – zapewniając jeden punkt wejścia w zależności od przypadku użycia.

# 3 na powyższej ilustracji przedstawia wywołanie N1QL funkcji SEARCH:

WHERE… SEARCH (nazwa\_indeksu, tekst do wyszukania )

Spowoduje to ograniczenie wyników do dopasowań między wszystkimi predykatami w klauzuli WHERE i dokumentami, które mają pasuje do wyszukiwania. Wykorzystuje to najbardziej podstawowe możliwości zapytań tekstowych FTS, ale jest celowo proste.

N1QL z wskazówką dotyczącą indeksu

Alternatywne podejście jest pokazane na slajdzie Binha w prawym dolnym rogu. Nawiasem mówiąc, ten slajd jest świetnym podsumowaniem podejść do innych baz danych i produktów wyszukiwania.

W przypadku podpowiedzi do indeksu wystarczy prosta instrukcja w klauzuli FROM który jest potrzebny do wykorzystania istniejących indeksów FTS:

FROM CRM USE INDEX (USING FTS)

Może również jawnie używać (USING GSI) , ale uważam, że to jest domyślne ustawienie.

Korzystając z tej wskazówki, interpreter zapytań N1QL sprawdzi, czy kolumny użyte w WHERE (np. tytuł i typ ) są indeksowane przez FTS. Jeśli tak, zostaną użyte zamiast jakichkolwiek indeksów związanych z GSI – bez konieczności wprowadzania innych danych.

Zwróć uwagę, że pola w SELECT zostanie automatycznie pobrana ze źródła do cuments i zwrócone do użytkownika bez konieczności wykonywania drugiego wywołania z aplikacji.

Wyszukiwanie prefiksu za pomocą LIKE , zakresy dat, zakresy liczbowe i nie tylko są obsługiwane przez to podejście i przekształcane w potężne zapytania FTS za kulisami. Zobacz obszerny post na blogu Binh , aby uzyskać więcej informacji.

Jak będziesz tego używać?

Przepływ pracy jest prosty: zindeksuj odpowiednie pola do wyszukiwania tekstowego, a następnie dodaj wskazówkę do istniejących zapytań. To jest świetne do prototypowania i testowania z FTS. Możesz dodać małą klauzulę do swoich zapytań i nie musisz zmieniać aplikacji w znaczący sposób.

Następnie, jeśli zdasz sobie sprawę, że chcesz używać wyszukiwania tekstowego zamiast N1QL, możesz dowiedzieć się, jak responsywny będzie. Celem FTS jest szybszy i szybki zestaw trafnych i zdobytych meczów.

Alternatywnie, jeśli używasz już FTS do zasilania swoich aplikacji, możesz zamiast tego spróbować skorzystać z zapytań N1QL, dzięki czemu nie musisz wykonywać oddzielnego wywołania w celu pobrania wartości pól z pasujących dokumentów.

Dlaczego to ma znaczenie?

Każde przedsiębiorstwo boryka się z utrzymaniem rosnącego zestawu coraz bardziej złożonych systemów. Zawsze byłem zwolennikiem podejścia do systemów modułowych, które pozwala projektantom systemów na wymianę / wymianę różnych komponentów w razie potrzeby. Jednak jest to naprawdę idealne rozwiązanie tylko w fazie testowania i rozwoju. W przypadku planowania długoterminowego bardzo korzystne jest ustandaryzowanie podstawowego zestawu funkcji i możliwie ścisła integracja.

Couchbase ma na celu dostarczenie ogólnej platformy dla wszystkich potrzeb związanych z kluczową wartością i dokumentami – w tym zapytań , wyszukiwanie tekstu, analityka, eventing itp. na rozproszonej platformie o wysokiej wydajności. To więcej niż tylko marketingowa mowa :). Ta konsolidacja możliwości pozwala administratorom i programistom stać się ekspertami w zakresie pojedynczej platformy, zamiast uczyć się kilku.

Uważam, że gdybyś mógł złożyć kilka składników systemu w ujednolicone doświadczenie, zobaczyłbyś, jak wpłynie to na Twoje TCO w sposób, którego niekoniecznie byś się spodziewał.

Myślę, że to ważne i dlaczego jestem uparty na tego typu integracji N1QL / Search – brawo dla prostoty!

Mam nadzieję, że dołączysz jutro do mojego wystąpienia (w trzecim dniu wydarzenia) o 10:00 czasu PDT – Uproszczone wyszukiwanie tekstu – metody i architektura , w którym delikatnie wprowadzam do pojęć wyszukiwania pełnotekstowego i pomagam zrozumieć ogólne architektura usługi. Zarejestruj się tutaj .

Dziękujemy za przeczytanie!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *