Zoekopdracht of zoekopdracht – waarom niet beide?

(16 oktober 2020)

Dag 2 van het bijwonen van de Couchbase Connect-evenement en, zoals beloofd, duik ik wat meer in enkele van de N1QL-queryupdates die van invloed zijn op het zoeken in volledige tekst.

Even terzijde: ik deed dat vroeger werk bij Couchbase en was de Product Manager die het Full-Text Search-product lanceerde – dus het zit me zelfs nu na aan het hart. Dat is de reden waarom ik mijn Simplified Text Search-lezing op vrijdag bij hetzelfde evenement houd. Meer daarover aan het einde van dit artikel.

Zoeken in volledige tekst (FTS ook bekend als Search) is een onderwerp op zich, maar het enige dat u voor dit artikel moet weten, is dat het een aparte service of set is. van mogelijkheden van de N1QL SQL-achtige zoekservice van Couchbase. Net als bij relationele databases, maakt N1QL gebruik van een set indexen die bekend staat als Global Secondary Indexing (GSI).

De Couchbase Search-service heeft zijn eigen set indexen en maakt flexibeler zoeken mogelijk, met een krachtig taalbewustzijn, naar tekst in velden of objecten in JSON-documenten.

Binh Les talk Flex Index – Gebruik zoeken met standaard SQL-predikaat zonder beperking van zoekopdrachten duikt in de N1QL-functies waarmee een zoekopdracht, afhankelijk van de behoefte, GSI- of FTS-indexen kan gebruiken. Dit is een coole nieuwe functie en er zijn twee manieren waarop het toegankelijk is.

De onderstaande dias zijn van Binhs lezing – bekijk de volledige lezing voor een veel diepere duik en enkele live voorbeelden.

Applicaties kunnen ervoor kiezen om Full Text Search of GSI-aangedreven zoekopdrachten te gebruiken

N1QL met zoekpredikaatfunctie

De eerste manier om een ​​FTS-index te gebruiken vanuit een N1QL-zoekopdracht is door een SEARCH () predikaat naar de WHERE clausule. Deze illustratie toont de verschillende manieren om Couchbase-services te doorzoeken – met een enkel toegangspunt, afhankelijk van het gebruik.

# 3 in de bovenstaande afbeelding toont de N1QL-aanroep naar de SEARCH-functie:

WAAR… SEARCH (indexnaam, tekst om naar te zoeken )

Dit beperkt de resultaten tot overeenkomsten tussen alle predikaten in de WHERE -clausule en documenten met een match voor de zoekopdracht. Dit maakt gebruik van de meest basale FTS-tekstquery-mogelijkheden, maar is opzettelijk eenvoudig.

N1QL met Index-hint

De alternatieve benadering wordt getoond in Binhs dia rechtsonder. Overigens is deze dia een geweldige samenvatting van benaderingen in andere database- en zoekproducten.

In het geval van indexhinting is een eenvoudige instructie in de FROM -clausule alles dat nodig is om gebruik te maken van bestaande FTS-indexen:

FROM crm USE INDEX (USE FTS)

Het kan ook expliciet gebruiken (USING GSI) maar dat is volgens mij de standaard.

Door deze hint te gebruiken zal de N1QL-queryinterpreter controleren of de kolommen die worden gebruikt in de WHERE clausule (bijv. titel en type ) worden geïndexeerd door FTS. ze zullen worden gebruikt in plaats van GSI-gerelateerde indexen – zonder enige andere invoer vereist.

Merk op dat de velden in de SELECT clausule wordt automatisch overgenomen uit de broncode cuments en teruggestuurd naar de gebruiker zonder een tweede aanroep vanuit uw applicatie.

Prefix zoeken met LIKE predikaten, datumbereiken, numerieke bereiken en meer worden ondersteund door deze aanpak en achter de schermen omgezet in krachtige FTS-zoekopdrachten. Zie Binhs uitgebreide blogpost voor meer details.

Hoe ga je dit gebruiken?

De workflow is eenvoudig: indexeer relevante velden voor tekstzoekopdrachten en voeg de hint toe aan uw bestaande zoekopdrachten. Dit is geweldig voor het maken van prototypes en testen met FTS. U kunt een kleine clausule aan uw zoekopdrachten toevoegen en hoeft de applicaties niet substantieel te wijzigen.

Als u zich dan realiseert dat u tekst zoeken wilt gebruiken in plaats van N1QL, kunt u een idee krijgen van hoe responsief zal het zijn. Het doel van FTS is om sneller te zijn en je een snelle set van relevante en gescoorde wedstrijden te geven.

Als alternatief, als u al FTS gebruikt om uw applicaties aan te drijven, kunt u in plaats daarvan proberen te profiteren van N1QL-queries, zodat u geen aparte aanroep hoeft te doen om veldwaarden uit overeenkomende documenten op te halen.

Waarom is dit belangrijk?

Elke onderneming worstelt met het onderhouden van een groeiende reeks steeds complexere systemen. Ik ben altijd een voorstander geweest van een modulaire systeembenadering waarmee systeemontwerpers naar behoefte verschillende componenten kunnen wisselen. Dat is echter pas echt ideaal tijdens de test- en ontwikkelingsfase. Voor langetermijnplanning is het zeer nuttig om te standaardiseren op een kernset van mogelijkheden en deze zo nauw mogelijk te integreren.

Couchbase streeft ernaar een algemeen platform te bieden voor alle belangrijke-waarde- en documentbehoeften, inclusief querys , tekst zoeken, analyse, eventing, enz. allemaal op een gedistribueerd, krachtig platform. Dit is meer dan marketingtaal :). Deze consolidatie van mogelijkheden stelt beheerders en ontwikkelaars in staat experts te worden in een enkel platform in plaats van er meerdere te moeten leren.

Als je verschillende systeemcomponenten zou kunnen samenvouwen tot een uniforme ervaring, denk ik dat je zou zien dat dit invloed zou hebben op je TCO op manieren die u niet per se zou verwachten.

Ik denk dat dat belangrijk is en waarom ik optimistisch ben op dit type N1QL / Search-integratie – bravo voor eenvoud!

Ik hoop dat je morgen deelneemt aan mijn lezing (dag 3 van het evenement) om 10:00 uur PDT – Vereenvoudigde tekstzoekopdracht – Methoden en architectuur waar ik een vriendelijke inleiding geef tot zoekconcepten in volledige tekst en u een beter begrip van de algemene architectuur van de dienst. Registreer hier .

Bedankt voor het lezen!

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *