8.1.7. groonga-suggest-httpd

8.1.7.1. 概要

groonga-suggest-httpd is a program to provide interface which accepts HTTP request and returns suggestion dataset, then saves logs for learning. groonga-suggest-httpd behaves similar in point of view of suggestion functionality, but the name of parameter is different.

8.1.7.2. 書式

groonga-suggest-httpd [options] database_path

8.1.7.3. 使い方

8.1.7.3.1. 設定をする

最初に提案用のデータベースをセットアップする必要があります。

実行例:

% groonga-suggest-create-dataset /tmp/groonga-databases/groonga-suggest-httpd query

8.1.7.3.2. Launch groonga-suggest-httpd

Execute groonga-suggest-httpd command:

実行例:

% groonga-suggest-httpd /tmp/groonga-databases/groonga-suggest-httpd

After executing above command, groonga-suggest-httpd accepts HTTP request on 8080 port.

If you just want to save requests into log file, use -l option.

Here is the example to save log files under logs directory with log prefix for each file.:

% groonga-suggest-httpd -l logs/log /tmp/groonga-databases/groonga-suggest-httpd

Under logs directory, log files such as logYYYYmmddHHMMSS-00 are created.

8.1.7.3.3. Request to groonga-suggest-httpd

Here is the sample requests to learn groonga for query dataset:

% curl 'http://localhost:8080/?i=127.0.0.1&l=query&s=92619&t=complete&q=g'
% curl 'http://localhost:8080/?i=127.0.0.1&l=query&s=93850&t=complete&q=gr'
% curl 'http://localhost:8080/?i=127.0.0.1&l=query&s=94293&t=complete&q=gro'
% curl 'http://localhost:8080/?i=127.0.0.1&l=query&s=94734&t=complete&q=groo'
% curl 'http://localhost:8080/?i=127.0.0.1&l=query&s=95147&t=complete&q=grooon'
% curl 'http://localhost:8080/?i=127.0.0.1&l=query&s=95553&t=complete&q=groonga'
% curl 'http://localhost:8080/?i=127.0.0.1&l=query&s=95959&t=submit&q=groonga

8.1.7.4. Options

-p, --port

Specify http server port number. The default value is 8080.

-t, --n-threads

Specify number of threads. The default value is 8. This option accepts 128 as the max value, but use the number of CPU cores for performance.

-s, --send-endpoint

Specify endpoint for sender.

-r, --receive-endpoint

Specify endpoint for receiver.

-l, --log-base-path

Specify path prefix of log.

--n-lines-per-log-file

Specify the number of lines in a log file. The default value is 1,000,000.

-d, --daemon

Specify this option to daemonize.

--disable-max-fd-check

Specify this option to disable checking max fd on start.

8.1.7.5. コマンドライン引数

database_path だけが必須の引数です。

8.1.7.5.1. database_path

Specifies the path to a Groonga database. This database must be created by groonga-suggest-create-dataset command because it executes required initialization for suggestion.

8.1.7.6. GETの引数

groonga-suggest-httpd accepts following GET parameters.

必須の引数があります。どれが必須かはクエリーの種類に依存します。

8.1.7.6.1. 必須引数

Key

説明

Note
q UTF-8 encoded string which user fills in form  
t The type of query. The value of type must be complete, correct, suggest or submit. It also accepts multiple type of query which is concatinated by |. Note that submit is invalid value when you specify multiple type of query.  

8.1.7.6.2. 学習時に必須の引数

Key

説明

Note
s Elapsed time from 0:00 January 1, 1970 Note that you need specify the value of s in milliseconds
i Unique ID to distinct user Use session ID or IP address for example
l Specify the name of dataset for learning. It also accepts multiple dataset name which is concatinated by | Note that dataset name must be matched to following regular expression [A-Za-z ][A-Za-z0-9 ]{0,15}

8.1.7.6.3. 提案時に必須の引数

Key

説明

Note
n

提案用のデータベース名を指定します。

This dataset name is used to calculate suggestion results

8.1.7.6.4. 省略可能引数

Key

説明

Note
callback Specify the name of function if you prefer JSONP as response format The name of function must be matched to reqular expression [A-Za-z ][A-Za-z0-9 ]{0,15}

8.1.7.7. 戻り値

groonga-suggest-httpd command returns following response in JSON or JSONP format.

JSON形式:

{TYPE: [[CANDIDATE_1, SCORE_1], [CANDIDATE_2, SCORE_2], ... [CANDIDATE_N, SCORE_N]]}

JSONP形式:

FUNCTION({TYPE: [[CANDIDATE_1, SCORE_1], [CANDIDATE_2, SCORE_2], ... [CANDIDATE_N, SCORE_N]]})

TYPE

completecorrectsuggest のどれか。

CANDIDATE_N

The string of candidate (UTF-8).

SCORE_N

スコア。