Dotaz nebo vyhledávání – proč ne obojí?

(16. října 2020)

2. den účasti na Událost Couchbase Connect a, jak jsem slíbil, ponořím se trochu víc do některých aktualizací dotazů N1QL, které mají dopad na fulltextové vyhledávání.

Kromě toho jsem býval pracoval ve společnosti Couchbase a byl produktovým manažerem, který uvedl na trh produkt Fulltextové vyhledávání – takže mi je nyní blízký. Proto v pátek na stejné akci vedu přednášku „Zjednodušené hledání textu“. Více o tom na konci tohoto článku.

Fulltextové vyhledávání (FTS aka Search) je jeho vlastní téma, ale vše, co potřebujete pro tento článek vědět, je, že se jedná o samostatnou službu nebo sadu možností z dotazovací služby Couchbase podobné N1QL SQL. Podobně jako relační databáze, N1QL využívá sadu indexů známých jako globální sekundární indexování (GSI).

Služba Couchbase Search má vlastní sadu indexů a umožňuje pružnější vyhledávání textu v polích nebo objektech v dokumentech JSON s výkonným znalostem jazyka.

Binh Les diskuse Flex Index – využití páky se standardním predikátem SQL bez omezení dotazů se ponoří do funkcí N1QL, které umožňují dotazu používat indexy GSI nebo FTS v závislosti na potřebě. Toto je skvělá nová funkce a jsou k dispozici dva způsoby, jak je přístupná.

Prezentace níže pocházejí z Binhovy přednášky – pro hlubší ponor a několik živých příkladů si prosím přečtěte celou přednášku.

Aplikace se mohou rozhodnout použít dotazy typu Full Text Search nebo GSI

N1QL s funkcí Search Predicate

První způsob, jak využít index FTS zevnitř vyhledávání N1QL, je přidání SEARCH () predikát klauzule WHERE . Tento obrázek ukazuje různé způsoby dotazování napříč službami Couchbase – poskytuje jediný vstupní bod v závislosti na případu použití.

# 3 na obrázku výše ukazuje volání N1QL na funkci SEARCH:

WHERE… SEARCH (indexName, text to search for )

Tím se omezí výsledky na shody mezi všemi predikáty v klauzuli WHERE a dokumenty, které mají shoda pro vyhledávání. Toto využívá nejzákladnější možnosti textového dotazu FTS, ale je to záměrně jednoduché.

N1QL s indexovou nápovědou

Alternativní přístup je uveden na snímku Binha vpravo dole. Mimochodem, tento snímek je skvělým souhrnem přístupů napříč dalšími databázovými a vyhledávacími produkty.

V případě nápovědy indexu je vše jednoduché v klauzuli FROM to je nutné k využití stávajících indexů FTS:

Z CRM USE INDEX (POUŽITÍ FTS)

Mohlo by to také explicitně použít (POUŽITÍ GSI) ale to je výchozí nastavení, kterému věřím.

Použitím této nápovědy překladač dotazů N1QL ověří, zda sloupce použité v WHERE klauzule (např. název a typ ) jsou indexovány pomocí FTS. Pokud ano, použijí se místo indexů souvisejících s GSI – bez dalších vstupů.

Pamatujte, že pole v SELECT klauzule bude automaticky čerpána ze zdroje do dokumenty a vráceny uživateli, aniž byste museli uskutečnit druhé volání z vaší aplikace.

Hledání předpon pomocí LIKE predikáty, rozsahy dat, číselné rozsahy a další jsou tímto přístupem podporovány a převedeny na silné FTS dotazy v zákulisí. Další podrobnosti najdete v komplexním blogovém příspěvku společnosti Binh.

Jak to využijete?

Pracovní postup je jednoduchý: indexujte relevantní pole pro textové vyhledávání a poté přidejte nápovědu k vašim stávajícím dotazům. To je skvělé pro prototypování a testování s FTS. Do svých dotazů můžete přidat malou klauzuli a nemusíte podstatným způsobem měnit aplikace.

Pak, pokud si uvědomíte, že chcete místo N1QL použít textové vyhledávání, můžete získat představu o tom, jak responzivní to bude. Cílem FTS je být rychlejší a poskytnout vám rychlou sadu relevantních a skórovaných zápasů.

Alternativně, pokud již používáte FTS k napájení svých aplikací, můžete místo toho zkusit využít výhod dotazů N1QL, abyste nemuseli provádět samostatné volání k načtení hodnot polí z odpovídajících dokumentů.

Proč na tom záleží?

Každý podnik se potýká s udržováním rostoucí sady stále složitějších systémů. Vždy jsem byl zastáncem modulárního systémového přístupu, který umožňuje návrhářům systémů vyměňovat podle potřeby různé komponenty. To je však opravdu ideální pouze během fáze testování a vývoje. Pro dlouhodobé plánování je velmi výhodné standardizovat základní sadu schopností a co nejtěsnější integraci.

Cílem Couchbase je poskytnout celkovou platformu pro všechny klíčové hodnoty a potřeby dokumentů – včetně dotazování , vyhledávání textu, analytika, události atd., to vše na distribuované a výkonné platformě. To není jen marketingová řeč :). Tato konsolidace funkcí umožňuje správcům a vývojářům, aby se stali odborníky na jednu platformu, místo aby se museli několik naučit.

Pokud byste mohli sbalit několik systémových komponent do jednotného prostředí, domnívám se, že to dopadne na váš div id = „80842b9866“> TCO způsobem, který byste nečekali.

Myslím, že je to důležité a proč jsem býčí na tomto typu integrace N1QL / Search – bravo pro jednoduchost!

Doufám, že se zítra připojíte k mé řeči (3. den akce) v 10:00 PDT – Zjednodušené textové vyhledávání – metody a architektura , kde jemně představím koncepty fulltextového vyhledávání a pomůžu vám porozumět celkovému architektura služby. Zaregistrujte se zde .

Děkujeme za přečtení!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *