クエリまたは検索—両方ではないのはなぜですか?

投稿日:

(2020年10月16日)

Couchbase Connectイベントと、で約束したように、全文検索に影響を与えるN1QLクエリの更新のいくつかについてもう少し詳しく説明します。

余談ですが、以前はCouchbaseで働いており、全文検索製品を立ち上げたプロダクトマネージャーでした。そのため、今でも私の心の近くにあります。そのため、同じイベントで金曜日に「簡易テキスト検索」の講演を行っています。詳細については、この記事の最後をご覧ください。

全文検索(FTS、別名検索)は独自のトピックですが、この記事で知っておく必要があるのは、別のサービスまたはセットであるということだけです。 CouchbaseのN1QLSQLのようなクエリサービスの機能の一覧。リレーショナルデータベースと同様に、N1QLはグローバルセカンダリインデックス(GSI)と呼ばれる一連のインデックスを利用します。

Couchbase Searchサービスには独自のインデックスセットがあり、JSONドキュメントのフィールドまたはオブジェクト内のテキストを強力な言語認識でより柔軟に検索できます。

Binh Les トーク フレックスインデックス—クエリ制限のない標準SQL述語を使用した検索の活用 は、クエリが必要に応じてGSIまたはFTSインデックスのいずれかを使用できるようにするN1QL機能について詳しく説明します。これはすばらしい新機能であり、アクセスする方法は2つあります。

以下のスライドはBinhの講演からのものです。詳細については、講演全体といくつかの実例をご覧ください。

アプリケーションは、全文検索またはGSIを利用したクエリの使用を選択できます

検索述語関数を使用したN1QL

N1QL検索内からFTSインデックスを活用する最初の方法は、 SEARCH()はどこ句の述語です。この図は、Couchbaseサービス全体でクエリを実行するさまざまな方法を示しています。ユースケースに応じて単一のエントリポイントを提供します。

上の図の#3は、SEARCH関数へのN1QL呼び出しを示しています。

WHERE…SEARCH(indexName、 検索するテキスト )

これにより、結果が WHERE 句のすべての述語と検索に一致します。これは最も基本的なFTSテキストクエリ機能を使用しますが、意図的に単純です。

インデックスヒント付きのN1QL

代替アプローチは、右下のBinhのスライドに示されています。ちなみに、このスライドは、他のデータベースおよび検索製品にわたるアプローチの優れた要約です。

インデックスヒントの場合、 FROM 句の簡単なステートメントがすべてですこれは、既存のFTSインデックスを活用するために必要です:

FROM crm USE INDEX(USING FTS)

(USING GSI)ですが、これがデフォルトだと思います。

このヒントを使用すると、N1QLクエリインタープリターは 句(例: title および type )はFTSによってインデックス付けされます。その場合、これらは、GSI関連のインデックスの代わりに使用されます。他の入力は必要ありません。

SELECT 句はソースから自動的に描画されますアプリケーションから2回目の呼び出しを行わなくても、キューに入れてユーザーに返します。

LIKE 述語、日付範囲、数値範囲などがこのアプローチでサポートされ、舞台裏で強力なFTSクエリに変換されます。詳細については、Binhの包括的なブログ投稿を参照してください。

これをどのように使用しますか?

ワークフローは単純です。テキスト検索に関連するフィールドにインデックスを付けてから、既存のクエリにヒントを追加します。これは、FTSを使用したプロトタイピングとテストに最適です。クエリに小さな句を追加することができ、アプリケーションを大幅に変更する必要はありません。

次に、N1QLの代わりにテキスト検索を使用したい場合は、その方法を理解できます。レスポンシブになります。 FTSの目標は、より速く、関連性のあるスコアの一致をすばやく提供することです。

または、すでにFTSを使用してアプリケーションを強化している場合は、代わりにN1QLクエリを利用して、一致するドキュメントからフィールド値を取得するために別の呼び出しを行う必要がないようにすることができます。

なぜこれが重要なのですか?

すべての企業は、ますます複雑化するシステムのセットを維持することに苦労しています。私は常に、システム設計者が必要に応じてさまざまなコンポーネントを交換できるモジュラーシステムアプローチを提唱してきました。ただし、これは実際にはテストおよび開発段階でのみ理想的です。長期的な計画では、機能のコアセットを標準化し、可能な限り緊密に統合することが非常に有益です。

Couchbaseは、クエリを含むすべてのKey-Valueとドキュメントのニーズに対応する全体的なプラットフォームを提供することを目的としています。 、テキスト検索、分析、イベントなど、すべて分散型の高性能プラットフォーム上で。これは単なるマーケティングの話ではありません:)。この機能の統合により、管理者と開発者は、いくつかを学ぶ必要がなく、単一のプラットフォームのエキスパートになることができます。

複数のシステムコンポーネントを統合されたエクスペリエンスにまとめることができれば、それがあなたの TCO 必ずしも期待できない方法で。

それは重要だと思います。なぜ私は強気なのですか?このタイプのN1QL /検索統合について—簡単にするために勇敢に!

明日のトークに参加してください(イベントの3日目)10:00 PDT — 簡略化されたテキスト検索—メソッドとアーキテクチャ ここでは、全文検索の概念を穏やかに紹介し、全体を理解するのに役立ちますサービスのアーキテクチャ。 ここで登録

お読みいただきありがとうございます!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です