Kysely tai haku – miksi ei molempia?

(16. lokakuuta 2020)

Couchbase Connect -tapahtuma ja, kuten luvattiin, sukellan hieman enemmän joihinkin N1QL-kyselypäivityksiin, jotka vaikuttavat kokotekstihakuun.

Vieraana tapaan työskentelin Couchbasessa ja tuotejohtaja, joka lanseerasi Full-Text Search -tuotteen – joten se on lähellä sydäntäni jo nyt. Siksi teen yksinkertaistetun tekstihaun puheeni perjantaina samassa tapahtumassa. Lisätietoja siitä tämän artikkelin lopussa.

Koko tekstihaku (FTS aka Search) on oma aihe, mutta tämän artikkelin tarvitsee vain tietää, että se on erillinen palvelu tai sarja ominaisuuksia Couchbasen N1QL SQL-tyyppisestä kyselypalvelusta. Samoin kuin relaatiotietokannoissa, N1QL hyödyntää joukkoa hakemistoja, jotka tunnetaan nimellä Global Secondary Indexing (GSI).

Couchbase-hakupalvelulla on omat hakemistosarjansa, ja se mahdollistaa JSON-dokumenttien kenttien tai objektien tekstin joustavamman ja tehokkaamman kielitietoisuuden.

Binh Len puhe Flex Index – vipuvaikutus tavallisella SQL-predikaatilla ilman kyselyrajoituksia sukeltaa N1QL-ominaisuuksiin, joiden avulla kysely voi käyttää joko GSI- tai FTS-hakemistoja tarpeen mukaan. Tämä on hieno uusi ominaisuus, ja siihen on kaksi tapaa.

Alla olevat diat ovat Binhin puhetta – katso koko puhe, jossa on paljon syvempi sukellus ja joitain live-esimerkkejä.

Sovellukset voivat käyttää kokotekstihakua tai GSI-pohjaisia ​​kyselyitä

N1QL ja hakupredikaattofunktio

Ensimmäinen tapa hyödyntää FTS-hakemistoa N1QL-haun sisällä on lisätä SEARCH () predikaatti lausekkeeseen WHERE . Tässä kuvassa on esitetty useita tapoja tehdä kyselyjä Couchbase-palveluissa – tarjota yksi sisääntulopiste käyttötapauksesta riippuen.

# 3 yllä olevassa kuvassa näyttää N1QL-kutsun HAKU-funktiolle:

WHERE… SEARCH (indexName, haettava teksti )

Tämä rajoittaa tulokset kaikkien WHERE -lausekkeen predikaattien ja asiakirjojen väliseen vastaavuuteen haku. Tämä käyttää perustavanlaatuisia FTS-tekstikyselyominaisuuksia, mutta on tarkoituksella yksinkertaista.

N1QL ja Index Hint

Vaihtoehtoinen lähestymistapa näkyy Binhin diassa oikeassa alakulmassa. Tämä dia on muuten erinomainen yhteenveto lähestymistavoista muissa tietokanta- ja hakutuotteissa.

Indeksivihjeiden tapauksessa yksinkertainen lauseke FROM -lausekkeessa on kaikki jota tarvitaan olemassa olevien FTS-hakemistojen hyödyntämiseen:

FROM crm USE INDEX (FTS: N KÄYTTÖ)

Se voi myös käyttää nimenomaisesti (KÄYTTÄEN GSI) mutta se on mielestäni oletusarvo.

Tämän vihjeen avulla N1QL-kyselyn tulkki tarkistaa, onko sarakkeessa WHERE -lauseke (esim. title ja type ) indeksoidaan FTS: llä. Jos on, niitä käytetään minkä tahansa GSI-indeksin sijaan – ilman mitään muuta syötettä.

Huomaa, että SELECT-kentät -lauseke otetaan automaattisesti lähdekoodista tiedostot ja palautettu käyttäjälle ilman, että sinun tarvitsee soittaa toista puhelua sovelluksestasi.

Etuliitehaku LIKE predikaatteja, päivämääräalueita, numeerisia alueita ja muuta ja muunnetaan tehokkaiksi FTS-kyselyiksi kulissien takana. Katso lisätietoja Binhin kattavasta blogiviestistä .

Kuinka käytät tätä?

Työnkulku on yksinkertainen: indeksoi asiaankuuluvat kentät tekstihakua varten ja lisää vihje nykyisiin kyselyihisi. Tämä on hyvä prototyyppien tekemiseen ja testaamiseen FTS: llä. Voit lisätä kyselyihisi pienen lausekkeen eikä sinun tarvitse vaihtaa sovelluksia merkittävällä tavalla.

Jos huomaat, että haluat käyttää tekstihakua N1QL: n sijaan, saat käsityksen siitä, miten se on herkkä. FTS: n tavoitteena on olla nopeampi ja antaa sinulle nopea joukko asiaankuuluvia ja pisteytettyjä otteluita.

Vaihtoehtoisesti, jos käytät FTS: ää jo sovellusten virtaviivaistamiseen, voit yrittää hyödyntää N1QL-kyselyjä sen sijaan, että sinun ei tarvitse soittaa erillistä puhelua, jotta kenttäarvot noudetaan vastaavista asiakirjoista.

Miksi tällä on merkitystä?

Jokainen yritys kamppailee ylläpitämällä kasvavaa joukkoa yhä monimutkaisempia järjestelmiä. Olen aina kannattanut modulaarista järjestelmälähestymistapaa, jonka avulla järjestelmäsuunnittelijat voivat vaihtaa eri komponentteja tarpeen mukaan. Se on kuitenkin ihanteellista vain testaus- ja kehitysvaiheissa. Pitkän aikavälin suunnittelussa on erittäin hyödyllistä standardoida ydinosaamiset ja integroida mahdollisimman tiukasti.

Couchbase pyrkii tarjoamaan kokonaisalustan kaikille avainarvojen ja asiakirjojen tarpeille – kysely mukaan lukien. , tekstihaun, analytiikan, tapahtumien jne. kaikki hajautetulla, tehokkaalla alustalla. Tämä on muutakin kuin pelkkä markkinointipuhe :). Tämän ominaisuuksien yhdistämisen ansiosta järjestelmänvalvojat ja kehittäjät voivat tulla asiantuntijoiksi yhdelle alustalle sen sijaan, että heidän tarvitsisi oppia useita.

Jos voisit tiivistää useita järjestelmäkomponentteja yhtenäiseksi kokemukseksi, uskon sinun näkevän sen vaikuttavan TCO tavoilla, joita et välttämättä odota.

Mielestäni tämä on tärkeää ja miksi olen nouseva tämäntyyppiselle N1QL / hakuintegraatiolle – yksinkertainen yksinkertaisuus!

Toivon, että liityt keskusteluun huomenna (tapahtuman 3. päivä) klo 10.00 PDT – Yksinkertaistettu tekstihaku – menetelmät ja arkkitehtuuri jossa esitän lempeän johdannon kokotekstihakuihin ja autan sinua ymmärtämään kokonaisuutta palvelun arkkitehtuuri. Rekisteröidy täällä .

Kiitos lukemisesta!

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *