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;
}
注意点
全文検索対象のフィールドについて、設定で「全文検索に含める」を有効にしてください。これはフィールド毎に設定します。
まとめ
全文検索は業務システムで良くあるニーズですが、実装は意外と面倒です。Hexabaseを使えば、添付ファイルやデータストア全体の全文検索が簡単に実装できます。
Hexabaseには他にもFaaSや、ステータス管理などの機能があります。それらの機能も利用してください。