Lekérdezés vagy keresés – miért ne mindkettő?

(2020. október 16.)

A Couchbase Connect esemény , és amint ígértem, kicsit jobban belemerülök az N1QL lekérdezési frissítések egy részébe, amelyek hatással vannak a teljes szöveges keresésre.

Félretéve szoktam a Couchbase-nél dolgozott, és a termékmenedzser volt, aki elindította a Full-Text Search terméket – tehát most is a szívem közelében áll. Ezért folytatom az „Egyszerűsített szövegkeresés” beszélgetésemet pénteken ugyanazon az eseményen. Bővebben erről a cikk végén.

A teljes szöveges keresés (FTS más néven keresés) saját téma, de ehhez a cikkhez csak annyit kell tudnia, hogy külön szolgáltatás vagy készlet a Couchbase N1QL SQL-szerű lekérdező szolgáltatásának képességeit. A relációs adatbázisokhoz hasonlóan az N1QL egy sor globális másodlagos indexelés (GSI) néven ismert indexkészletet is felhasznál.

A Couchbase Search szolgáltatás saját indexkészlettel rendelkezik, és lehetővé teszi a JSON-dokumentumok mezőkben vagy objektumokban lévő szövegek rugalmasabb keresését, erőteljes nyelvtudat mellett.

Binh Le beszélgetése Flex Index – Kereskedelem keresés standard SQL predikátummal, lekérdezés korlátozása nélkül belemerül az N1QL szolgáltatásaiba, amelyek lehetővé teszik, hogy a lekérdezés GSI vagy FTS indexeket használjon, szükség szerint. Ez egy remek új szolgáltatás, és kétféleképpen érhető el.

Az alábbi diák Binh beszélgetéséből származnak – kérjük, olvassa el a teljes előadást egy sokkal mélyebb merüléshez és néhány élő példát.

Az alkalmazások választhatnak teljes szöveges keresést vagy GSI-alapú lekérdezéseket

N1QL keresési predikátum funkcióval

Az FTS index kihasználásának első módja az N1QL keresésen belül egy SEARCH () predikátum a WHERE záradékhoz. Ez az ábra a Couchbase-szolgáltatások közötti lekérdezés különféle módjait mutatja be – egyetlen belépési pontot biztosítva a használati esettől függően.

# 3 a fenti ábrán az N1QL hívást mutatja a KERESÉS funkcióhoz:

WHERE… SEARCH (indexNév, keresendő szöveg )

Ez az eredményeket a WHERE záradék összes predikátumának és a egyezik a kereséssel. Ez a legalapvetőbb FTS szöveges lekérdezési képességeket használja, de szándékosan egyszerű.

N1QL az Index Hint

Az alternatív megközelítést Binh jobb alsó sarokban mutatja. Ez a di egyébként remekül összefoglalja a többi adatbázis és keresési termék megközelítését.

Indexes tippelés esetén a FROM záradék egyszerű mondata minden ami a meglévő FTS indexek kihasználásához szükséges:

FROM crm USE INDEX (FTS HASZNÁLATA)

Kifejezetten használhatja a alkalmazást is ( GSI) , de úgy gondolom, hogy ez az alapértelmezés.

Ennek a tippnek a használatával az N1QL lekérdező tolmács ellenőrzi, hogy a WHERE záradékot (pl. title és type ) az FTS indexeli. Ha igen, ezeket a GSI-hez kapcsolódó indexek helyett kell használni – minden egyéb szükséges bevitel nélkül.

Ne feledje, hogy a SELECT mezők a záradék automatikusan a forrás forrásból származik dokumentumokat, és anélkül küldték vissza a felhasználónak, hogy második hívást kellett volna végrehajtania az alkalmazásból.

Előtag keresés a következővel: LIKE predikátumokat, dátumtartományokat, numerikus tartományokat és egyebeket ez a megközelítés támogatja, és erőteljes FTS-lekérdezésekké alakítja a kulisszák mögött. További részletekért lásd Binh átfogó blogbejegyzését .

Hogyan fogja ezt használni?

A munkafolyamat egyszerű: indexelje a releváns mezőket a szöveges kereséshez, majd adja hozzá a tippet a meglévő lekérdezésekhez. Ez kiváló prototípus készítéshez és FTS-sel történő teszteléshez. Hozzáadhat egy apró záradékot a kérdéseihez, és nem kell jelentős mértékben megváltoztatnia az alkalmazásokat.

Ezután, ha rájön, hogy az N1QL helyett szöveges keresést szeretne használni, képet kaphat arról, hogyan érzékeny lesz. Az FTS célja az, hogy gyorsabb legyen, és gyors releváns és szerzett mérkőzések készítése.

Alternatív megoldásként, ha már FTS-t használ az alkalmazások energiájához, megpróbálhatja kihasználni az N1QL-lekérdezéseket, hogy ne kelljen külön hívást indítania a mezőértékek lekéréséhez az egyező dokumentumokból.

Miért fontos ez?

Minden vállalkozás az egyre bonyolultabb rendszerek növekvő készletének fenntartásával küzd. Mindig híve voltam egy moduláris rendszerszemléletnek, amely lehetővé teszi a rendszertervezők számára, hogy szükség szerint cseréljék ki / ki a különböző komponenseket. Ez azonban valójában csak a tesztelés és a fejlesztés szakaszában ideális. A hosszú távú tervezés szempontjából rendkívül előnyös a képességek alapvető készletét szabványosítani és a lehető legszorosabban integrálni.

A Couchbase célja, hogy átfogó platformot biztosítson az összes kulcsértékhez és dokumentumhoz – beleértve a lekérdezést is. , szöveges keresés, elemzés, események stb. mindez egy elosztott, nagy teljesítményű platformon. Ez nem csak marketing beszéd :). A képességek ilyen konszolidációja lehetővé teszi a rendszergazdáknak és a fejlesztőknek, hogy egyetlen platform szakértőivé váljanak, ahelyett, hogy többet kellene megtanulniuk.

Ha több rendszerelemet összevonhat egy egységes élménnyé, azt hiszem, látni fogja, hogy ez hatással van a TCO olyan módon, amire nem feltétlenül számítana.

Szerintem ez fontos és miért vagyok bullish az ilyen típusú N1QL / Search integráción – nagyszerűség az egyszerűség kedvéért!

Remélem, csatlakozol holnapi beszélgetésemhez (az esemény 3. napján), 10:00 PDT-kor – Egyszerűsített szövegkeresés – módszerek és architektúra ahol gyengéden bemutatom a teljes szöveges keresési fogalmakat, és segítek megérteni az általános a szolgáltatás architektúrája. Regisztráljon itt .

Köszönjük, hogy elolvasta!

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük