0
0

Hexabase TypeScript SDKの使い方(全文検索)

Last updated at Posted at 2024-06-21

Hexabase(ヘキサベース)は企業においても安心して利用できるBaaS(Backend as a Service)を提供しています。多くのBaaSがそうであるように、主にフロントエンド開発者に利用してもらいたいと考えています。そこで現在、TypeScript SDKの開発が進められています。

この記事ではHexabase TypeScript SDKのインストールと、全文検索機能の使い方を解説します。全文検索はフィールド関係なく検索でき、添付ファイルも含めて検索できます。

インストール

インストールはnpmやyarnを使って行います。

# npmの場合
npm install @hexabase/hexabase-js

# yarnの場合
yarn add @hexabase/hexabase-js

インポート

インポートすると、 HexabaseClient というオブジェクトが取得できます。

import { HexabaseClient } from "@hexabase/hexabase-js";

初期化

HexabaseClientを初期化します。

const client = new HexabaseClient();

認証

Hexabaseでは業務利用を想定しているため、利用する際に認証情報が必須になります。最初はメールアドレスとパスワードで認証し、その後はトークンを使ってGraphQLにアクセスします。 client を使って処理します。

初回の認証は次のようになります。emailとパスワード、またはトークンが必須です。

await client.login({email, password, token});

後はこの client に対して処理を行います。

データストアについて

データストアは、データベース機能になります。Hexabaseでは最上位にワークスペースがあり、その下にプロジェクト、そしてプロジェクトの下にデータストアがあります。

// ワークスペースを設定
await client.setWorkspace('demo');
// プロジェクトを取得
const project = await client.currentWorkspace.project('demoProject');
// データストアを取得
const datastore = await project.datastore('demoTable');

全文検索

全文検索はデータストアに対して行います。プロジェクトに対して(データストア全体)もできますが、現時点ではSDK側が対応していません。また、フィールドを指定した検索にも対応していないので注意してください。

const { totalCount, items, hightlights } = await datastore.globalSearch('検索ワード');

2つ目の引数を使って、細かく絞り込み条件を設定できます。指定できるパラメーターは下記を参照してください。

category            : "items", "files", "histories" のいずれかを指定する。指定しない場合は、すべてが検索対象となる。
                      "items"         : Item内のデータを検索
                      "files"         : 添付ファイル内の文字を検索
                      "histories"     : Itemの履歴コメントを検索
return_item_list    : trueを指定すると、該当したItemに対して、[ItemList](/docs/v0/items/ItemList) で検索した結果を返却する
item_search_params  : ItemListの絞込条件や、ソート、ページネーションパラメータを指定可能(下記参照)

item_search_params では、 ItemList | Hexabase API ガイドに記載されているパラメーターを指定できます。

レスポンス

globalSearch のレスポンスは次のようになります。

  • totalCount: 検索結果の総数
  • items: 検索結果のアイテムデータ
  • hightlights: 検索結果にマッチした部分の配列

hightlightsの構造は以下のようになっています。

interface GlobalSearchHighlightResponse {
  category: string;
  fieldName?: {
	en: string;
	ja: string;
  };
  fileName?: string;
  highlightValue: {
    [key: string]: string[];
  };
  item: Item;
}

注意点

全文検索対象のフィールドについて、設定で「全文検索に含める」を有効にしてください。これはフィールド毎に設定します。

image.png

まとめ

全文検索は業務システムで良くあるニーズですが、実装は意外と面倒です。Hexabaseを使えば、添付ファイルやデータストア全体の全文検索が簡単に実装できます。

Hexabaseには他にもFaaSや、ステータス管理などの機能があります。それらの機能も利用してください。

Hexabase | 新規事業向け開発・競争領域でのDX実現をサポート

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0