Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

gRPC サーバーをはじめる

サーバーの起動

gRPC サーバーは laurus CLI の serve サブコマンドで起動します。

laurus serve [OPTIONS]

オプション

オプション短縮形環境変数デフォルト説明
--config <PATH>-cLAURUS_CONFIGTOML 設定ファイルのパス
--host <HOST>-HLAURUS_HOST0.0.0.0リッスンアドレス
--port <PORT>-pLAURUS_PORT50051リッスンポート
--http-port <PORT>LAURUS_HTTP_PORTHTTP ゲートウェイポート(設定すると HTTP ゲートウェイが有効化)

ログの詳細度は標準の RUST_LOG 環境変数で制御します(デフォルト: info)。 RUST_LOG=laurus=debug,tonic=warn のようなフィルタディレクティブの詳細は env_logger の構文を参照してください。

グローバルオプション --index-dir(環境変数: LAURUS_INDEX_DIR)でインデックスデータのディレクトリを指定します。

# CLI 引数を使用
laurus --index-dir ./my_index serve --port 8080

# 環境変数を使用
export LAURUS_INDEX_DIR=./my_index
export LAURUS_PORT=8080
export RUST_LOG=debug
laurus serve

起動時の動作

起動時、サーバーは設定されたデータディレクトリにある既存のインデックスを開こうとします。インデックスが存在しない場合、サーバーはインデックスなしで起動します。後から CreateIndex RPC でインデックスを作成できます。

設定

コマンドラインオプションの代わりに(または併用して)TOML 設定ファイルを使用できます。詳細は設定を参照してください。

laurus serve --config config.toml

HTTP ゲートウェイ

--http-port を設定すると、gRPC サーバーと並行して HTTP/JSON ゲートウェイが起動します。エンドポイントの詳細と使用例は HTTP ゲートウェイを参照してください。

laurus serve --http-port 8080

グレースフルシャットダウン

サーバーがシャットダウンシグナル(Ctrl+C / SIGINT)を受信すると、自動的に以下を実行します。

  1. 新しい接続の受け付けを停止
  2. インデックスへの保留中の変更をコミット
  3. 正常に終了

gRPC での接続

任意の gRPC クライアントでサーバーに接続できます。簡易テストには grpcurl が便利です。

# ヘルスチェック
grpcurl -plaintext localhost:50051 laurus.v1.HealthService/Check

# インデックスの作成
grpcurl -plaintext -d '{
  "schema": {
    "fields": {
      "title": {"text": {"indexed": true, "stored": true, "term_vectors": true}},
      "body": {"text": {"indexed": true, "stored": true, "term_vectors": true}}
    },
    "default_fields": ["title", "body"]
  }
}' localhost:50051 laurus.v1.IndexService/CreateIndex

# ドキュメントの追加
grpcurl -plaintext -d '{
  "id": "doc1",
  "document": {
    "fields": {
      "title": {"text_value": "Hello World"},
      "body": {"text_value": "This is a test document."}
    }
  }
}' localhost:50051 laurus.v1.DocumentService/AddDocument

# コミット
grpcurl -plaintext localhost:50051 laurus.v1.DocumentService/Commit

# 検索
grpcurl -plaintext -d '{"query": "body:test", "limit": 10}' \
  localhost:50051 laurus.v1.SearchService/Search

詳細は gRPC API リファレンスを参照してください。HTTP Gateway を使ったステップバイステップの操作ガイドはハンズオンチュートリアルを参照してください。