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.
groonga-suggest-httpd [options] database_path
最初に提案用のデータベースをセットアップする必要があります。
実行例:
% groonga-suggest-create-dataset /tmp/groonga-databases/groonga-suggest-httpd query
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.
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
Specify http server port number. The default value is 8080.
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.
Specify endpoint for sender.
Specify endpoint for receiver.
Specify path prefix of log.
Specify the number of lines in a log file. The default value is 1,000,000.
Specify this option to daemonize.
Specify this option to disable checking max fd on start.
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.
groonga-suggest-httpd accepts following GET parameters.
必須の引数があります。どれが必須かはクエリーの種類に依存します。
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. |
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} |
Key | 説明 |
Note |
---|---|---|
n | 提案用のデータベース名を指定します。 |
This dataset name is used to calculate suggestion results |
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} |
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
complete 、 correct 、 suggest のどれか。
CANDIDATE_N
The string of candidate (UTF-8).
SCORE_N
スコア。