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
First you need to set up database for suggestion.
Execution example:
% groonga-suggest-create-dataset /tmp/groonga-databases/groonga-suggest-httpd query
Execute groonga-suggest-httpd command:
Execution example:
% 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.
There is one required parameter - 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.
There are required parameters which depends on type of query.
Key | Description | 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 | Description | 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 | Description | Note |
---|---|---|
n | Specify the name of dataset for suggestion | This dataset name is used to calculate suggestion results |
Key | Description | 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.
In JSON format:
{TYPE: [[CANDIDATE_1, SCORE_1], [CANDIDATE_2, SCORE_2], ... [CANDIDATE_N, SCORE_N]]}
In JSONP format:
FUNCTION({TYPE: [[CANDIDATE_1, SCORE_1], [CANDIDATE_2, SCORE_2], ... [CANDIDATE_N, SCORE_N]]})
TYPE
One of complete, correct and suggest.
CANDIDATE_N
The string of candidate (UTF-8).
SCORE_N
The score.