groonga - オープンソースのカラムストア機能付き全文検索エンジン

7.1.5. groonga-httpd

7.1.5.1. 概要

groonga-httpdはgroongaサーバーとhttpプロトコルで通信するプログラムです。 機能的には、 groonga HTTPサーバー と同じになっています。 groonga HTTPサーバー はHTTPサーバーとしては最小限の機能しか持ちませんが、一方のgroonga-httpdはnginxを組み込むことでnginxが準拠しているHTTPの仕様と機能が全て利用できます。nginxの詳細については、http://www.nginx.org/を参照してください。

groonga-httpdにはHTML + JavaScriptで実装された管理ツールが標準で付属しています。ウェブブラウザでhttp://hostname:port/にアクセスすると、管理ツールを利用できます。

7.1.5.2. 書式

groonga-httpd [nginx options]

7.1.5.3. 使い方

7.1.5.3.1. 設定をする

まずは、データベースを指定するためにgroonga-httpdの設定ファイルを編集する必要があります。groonga_databaseディレクティブを有効にするために、次のように/etc/groonga/httpd/groonga-httpd.confを編集してください。

# Match this to the file owner of groonga database files if groonga-httpd is
# run as root.
#user groonga;
...
http {
  ...
  # Don't change the location; currently only /d/ is supported.
  location /d/ {
    groonga; # <= This means to turn on groonga-httpd.

    # Specify an actual database and enable this.
    groonga_database /var/lib/groonga/db/db;
  }
  ...
}

次に、groonga-httpdを実行してください。すぐにターミナルに制御が戻ってきますが、groonga-httpdはデフォルトでデーモンプロセスとして実行されるからです。

% groonga-httpd

7.1.5.3.2. クエリを実行する

動作を確認するため、簡単なクエリ(status)をリクエストしてみます。

実行例:

% curl http://localhost:10041/d/status
[
  [
    0,
    1337566253.89858,
    0.000355720520019531
  ],
  {
    "uptime": 0,
    "max_command_version": 2,
    "n_queries": 0,
    "cache_hit_rate": 0.0,
    "version": "2.0.3-278-g6071d65",
    "alloc_count": 145,
    "command_version": 1,
    "starttime": 1340769698,
    "default_command_version": 1
  }
]

7.1.5.3.3. 管理ツールを使う

補足ですが、 http://localhost:10041/ にアクセスすると管理ツールを利用できます。

7.1.5.3.4. 終了する

最後に、動作中のgroonga-httpdデーモンを終了するためには、次のコマンドを実行してください。

% groonga-httpd -s stop

7.1.5.4. 設定ディレクティブ

ディレクティブには2種類あります。groonga由来のものとnginx由来のものがあります。

以下のディレクティブはgroonga-httpdの設定ファイル中で使用することができます。デフォルトでは、設定ファイルは/etc/groonga/httpd/groonga-httpd.confに置かれています。

7.1.5.4.1. groonga関連のディレクティブ

以下のディレクティブはnginxから提供されているものではなく、groonga-httpd関連の設定をするためにgroonga-httpdから提供されているディレクティブです。

7.1.5.4.1.1. groonga_database

groongaデータベースのパスを指定します。

7.1.5.5. 利用可能なnginxモジュール

HttpRewriteModuleを除く全てのHTTPの標準モジュールが利用可能です。HttpRewriteModuleはPCRE (Perl Compatible Regular Expressions)へ依存しないようにするために無効化されています。残りの標準モジュールの一覧は、 http://wiki.nginx.org/Modules を参照してください。