ServBayでTypesense検索エンジンを設定・活用する方法
Typesenseは、検索しながらタイプできる“search-as-you-type”体験を提供するために設計された、オープンソースで軽量かつ超高速なインメモリ検索エンジンです。AlgoliaやElasticsearchの軽量な代替として人気があります。ServBayを使えば、macOSローカル環境上で高機能なTypesenseインスタンスを簡単にデプロイ・管理し、アプリに強力な検索機能を追加できます。
概要
ServBayはTypesenseのインストールとセットアップ手順を大幅にシンプル化しています。開発者は複雑なコマンドライン操作をすることなく、ServBayのGUI上ですべての設定を直感的に完了し、すぐに使い始められるローカル検索サービスを利用できます。
開発体験をさらに向上させるため、ServBayはTypesenseインスタンス用の安全でアクセスしやすいHTTPS APIエンドポイント https://typesense.servbay.host/
を自動で構成します。ポートフォワーディングやSSL証明書の煩わしい手順は不要、このドメインを直接アプリでAPI呼び出しに利用できます。
前提条件
- macOSにServBayがインストールされ、正常に動作していること
- 検索機能の組み込みを必要とするプロジェクトを開発していること
- 検索エンジンの基本知識(コレクション/インデックス(Collection)、ドキュメント(Document)、APIキーなど)があること
操作手順
1. Typesenseパッケージをインストール
まず最初に、ServBayでTypesenseパッケージをインストールします。
- ServBayアプリケーションを開きます。
- 左側のナビゲーションバーで**パッケージ(Packages)**をクリックします。
- パッケージ一覧から「検索」-「Typesense」を選びます。
Typesense
の右側にあるインストールボタンをクリックし、インストールが完了するまで待ちます。- 右側のボタンで
Typesense
サービスを有効化します。
2. Typesenseサービスの設定
インストール後、Typesenseの基本設定を行います。
ServBayの左ナビゲーションバーからSearchをクリックします。
ドロップダウンからTypesenseを選択し、設定画面に進みます。
以下の設定項目が表示されます。必要に応じて変更、またはデフォルトのままでも構いません。
- Bind IP(バインドIP): TypesenseサービスがリッスンするIPアドレス。デフォルトの
127.0.0.1
はローカルアクセス限定なので、開発環境で最も安全な設定です。 - Port(ポート): Typesense APIの通信ポート。デフォルトは
8108
。本サービスはこのポートで動作しますが、ServBayのhttps://typesense.servbay.host
ドメイン経由でアクセスすることを強く推奨します。 - API Key(APIキー): すべてのAPIリクエスト認証に使われます。検索データの安全性確保に不可欠な情報なので、必ず強力かつ一意なキーを設定し、安全に管理してください。
- Data Path(データ保存パス): Typesenseがローカルにインデックスデータや設定を保存するディレクトリ。デフォルトは
/Applications/ServBay/data/typesense
です。右側のフォルダアイコンをクリックするとFinderで直接開けます。
- Bind IP(バインドIP): TypesenseサービスがリッスンするIPアドレス。デフォルトの
3. 設定の保存とサービス起動
- すべての設定完了後、画面右下の**保存(Save)**ボタンをクリックします。
- 続けて**パッケージ(Packages)**リストに移動。
Typesense
を見つけて、その右側のスイッチでサービスを起動します。 - 設定が正しく完了していれば、サービスのステータスランプが緑色になり、Typesenseが正常に稼働していることが確認できます。
4. アプリへのTypesense統合
あなたのアプリ(JavaScript、PHP、Python、Go等)は、Typesense公式またはコミュニティ製クライアントライブラリを通じてServBay内のTypesenseインスタンスにアクセスできます。
接続時は、ServBayが提供する次の専用エンドポイント情報を使用してください。
- ホスト/ノード:
typesense.servbay.host
- ポート:
443
(HTTPS標準ポート) - プロトコル:
https
- API Key(APIキー): ステップ2で設定したキー
JavaScriptコード例(typesense-js
クライアント使用)
まず、プロジェクトにTypesenseのJavaScriptクライアントをインストールします。
bash
npm install typesense
# または
yarn add typesense
1
2
3
2
3
続けて、コード内でクライアントを初期化し、操作を行います。
javascript
import Typesense from 'typesense'
// Typesenseクライアントを初期化
// ServBayの専用ドメインと安全なプロトコルを利用
const client = new Typesense.Client({
nodes: [{
host: 'typesense.servbay.host',
port: 443,
protocol: 'https'
}],
apiKey: 'YOUR-SUPER-STRONG-API-KEY', // ServBayで設定したAPIキーに置き換えてください
connectionTimeoutSeconds: 2
})
// 例: 'books' コレクションを作成
const bookSchema = {
name: 'books',
fields: [
{ name: 'title', type: 'string' },
{ name: 'author', type: 'string', facet: true },
{ name: 'publication_year', type: 'int32', facet: true }
],
default_sorting_field: 'publication_year'
}
async function setupTypesense() {
try {
// コレクションの作成
await client.collections().create(bookSchema);
console.log("Collection 'books' created successfully.");
// 書籍ドキュメントの追加
const bookDocument = {
'title': 'The Hitchhiker\'s Guide to the Galaxy',
'author': 'Douglas Adams',
'publication_year': 1979
};
await client.collections('books').documents().create(bookDocument);
console.log("Document added successfully.");
// 検索の実行
const searchParameters = {
'q': 'hitchhiker',
'query_by': 'title',
'sort_by': 'publication_year:desc'
};
const searchResults = await client.collections('books').documents().search(searchParameters);
console.log('Search Results:', searchResults);
} catch (error) {
console.error('Typesense Error:', error);
}
}
setupTypesense();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
よくある質問(FAQ)
- Q: APIキーを忘れてしまいました。どうやってリセットしますか?
- A: ServBayでのリセットは非常に簡単です。Typesenseの設定画面(
Search
->Typesense
)で新しいAPIキーを入力し、保存(Save)をクリック。その後、Typesenseサービスを再起動してください。
- A: ServBayでのリセットは非常に簡単です。Typesenseの設定画面(
- Q: Typesenseサービスが起動しません。どうすればいいですか?
- A: 以下の点を確認してください:
- Typesense設定画面右上のログアイコンをクリックし、エラー詳細を確認します。多くの場合、原因がわかります。
- ローカルの
8108
ポートが他のアプリで使用されていないか確認してください。 Data Path
で指定したディレクトリが存在し、ServBayに読み書き権限があるかをチェックしてください。
- A: 以下の点を確認してください:
- Q:
http://127.0.0.1:8108
からAPIに直接アクセスできますか?- A: はい、ローカルではそのポートでアクセス可能です。しかし、よりセキュアで本番環境に近い形となる
https://typesense.servbay.host/
の利用を強く推奨します(HTTPS暗号化とノー設定で利用可能です)。
- A: はい、ローカルではそのポートでアクセス可能です。しかし、よりセキュアで本番環境に近い形となる
まとめ
ServBayはパワフルなTypesense検索エンジンをmacOSローカル開発ワークフローへシームレスに統合します。直感的なGUI設定とプリセット済みの安全なHTTPSエンドポイントにより、面倒な環境構築や保守作業ではなく、優れた検索体験を創り出すことによりフォーカスできるようになります。