Forespørsel eller søk – Hvorfor ikke begge deler?

(16. okt 2020)

Dag 2 for å delta på Couchbase Connect-begivenhet , og som lovet i, dykker jeg litt mer inn i noen av N1QL-spørringsoppdateringene som påvirker fulltekstsøk.

Som en side, pleide jeg å jobbet i Couchbase og var produktsjef som lanserte Full-Text Search-produktet – så det er nært mitt hjerte selv nå. Det er grunnen til at jeg holder foredraget «Forenklet tekstsøk» på fredag ​​på samme arrangement. Mer om det på slutten av denne artikkelen.

Fulltektssøk (FTS aka Search) er et eget emne, men alt du trenger å vite for denne artikkelen er at det er en egen tjeneste eller et sett av evner fra den N1QL SQL-lignende spørringstjenesten til Couchbase. I likhet med relasjonsdatabaser utnytter N1QL et sett med indekser kjent som Global Secondary Indexing (GSI).

Couchbase Search-tjenesten har sitt eget sett med indekser og tillater mer fleksibel søk, med kraftig språkbevissthet, for tekst i felt eller objekter i JSON-dokumenter.

Binh Les diskusjon Flex Index – Utnytt søk med standard SQL-predikat uten spørrebegrensning dykker ned i N1QL-funksjonene som gjør at et spørsmål kan bruke enten GSI- eller FTS-indekser, avhengig av behov. Dette er en kul ny funksjon, og det er to måter den er tilgjengelig på.

Lysbildene nedenfor er fra Binhs tale – se hele samtalen for et mye dypere dykk og noen live eksempler.

Programmer kan velge å bruke fulltekstsøk eller GSI-drevne spørsmål

N1QL med søkepredikatfunksjon

Den første måten å utnytte en FTS-indeks fra et N1QL-søk er ved å legge til en SØK () predikat til HVOR klausul. Denne illustrasjonen viser de forskjellige måtene å spørre på tvers av Couchbase-tjenester – og gir et enkelt inngangspunkt avhengig av brukssaken.

# 3 i grafikken ovenfor viser N1QL-anropet til SØK-funksjonen:

HVOR… SØK (indeksnavn, tekst for å søke etter )

Dette vil begrense resultatene til samsvar mellom alle predikatene i WHERE klausul og dokumenter som har en match for søket. Dette bruker de mest grunnleggende FTS-tekstspørsmålene, men er med vilje enkel.

N1QL med indekshint

Den alternative tilnærmingen vises i Binhs lysbilde nederst til høyre. For øvrig er dette lysbildet et flott sammendrag av tilnærminger på tvers av andre databaser og søkeprodukter.

Når det gjelder indeksantydning, er en enkel uttalelse i FRA -klausulen alt som er nødvendig for å utnytte eksisterende FTS-indekser:

FRA crm USE INDEX (USING FTS)

Det kan også eksplisitt bruke (USING GSI) men det er standard tror jeg.

Ved å bruke dette hintet vil N1QL-spørjetolken sjekke om kolonnene som brukes i HVOR klausul (f.eks. tittel og type ) indekseres av FTS. Hvis ja, de vil bli brukt i stedet for alle GSI-relaterte indekser – uten noen annen inngang nødvendig.

Merk at feltene i VELG klausul vil automatisk bli trukket fra kilden gjør og returnert til brukeren uten å måtte ringe et nytt anrop fra applikasjonen din.

Prefikssøk med LIKE predikater, datoperioder, numeriske områder og mer støttes av denne tilnærmingen og konverteres til kraftige FTS-spørsmål bak kulissene. Se Binhs omfattende blogginnlegg for mer informasjon.

Hvordan vil du bruke dette?

Arbeidsflyten er enkel: indekser relevante felt for tekstsøk, og legg deretter til hintet til dine eksisterende spørsmål. Dette er flott for prototyping og testing med FTS. Du kan legge til en liten klausul i spørsmålene dine og ikke trenger å endre applikasjoner på en vesentlig måte.

Hvis du skjønner at du vil bruke tekstsøk i stedet for N1QL, kan du få en ide om hvordan responsiv vil det være. Målet med FTS er å være raskere og å gi deg et raskt sett med relevante og scoret kamper.

Alternativt, hvis du allerede bruker FTS til å drive applikasjonene dine, kan du prøve å dra nytte av N1QL-spørringer i stedet, slik at du ikke trenger å ringe separat for å hente feltverdier fra samsvarende dokumenter.

Hvorfor har dette noe å si?

Enhver bedrift sliter med å opprettholde et voksende sett med stadig mer komplekse systemer. Jeg har alltid vært talsmann for en modulær systemtilnærming som lar systemdesignere bytte inn / ut forskjellige komponenter etter behov. Imidlertid er det egentlig bare ideelt i test- og utviklingsfasene. For langsiktig planlegging er det svært gunstig å standardisere på et kjernesett av funksjoner og å ha integrert så tett som mulig.

Couchbase har som mål å levere en samlet plattform for alle nøkkelverdier og dokumentbehov – inkludert spørring , tekstsøk, analyse, eventing osv. alt på en distribuert, høyytelsesplattform. Dette er mer enn bare markedsføring snakke :). Denne konsolideringen av funksjonene gjør at administratorer og utviklere kan bli eksperter på en enkelt plattform i stedet for å måtte lære seg flere.

Hvis du kan kollapse flere systemkomponenter til en enhetlig opplevelse, tror jeg du vil se det påvirke din TCO på måter du ikke nødvendigvis forventer.

Jeg synes det er viktig og hvorfor jeg er bullish på denne typen N1QL / Search-integrasjon – bravo for enkelhet!

Jeg håper du blir med på foredraget mitt i morgen (dag 3 av arrangementet) kl 10:00 PDT – Forenklet tekstsøk – Metoder og arkitektur hvor jeg gir en skånsom introduksjon til fulltekstsøkekonsepter og hjelper deg med å forstå det overordnede tjenestenes arkitektur. Registrer deg her .

Takk for at du leser!

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *