7.1.8. groonga-suggest-httpd¶
7.1.8.1. Summary¶
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.
7.1.8.2. Synopsis¶
groonga-suggest-httpd [options] database_path
7.1.8.3. Usage¶
7.1.8.3.1. Set up¶
First you need to set up database for suggestion.
Execution example:
% groonga-suggest-create-dataset /tmp/groonga-databases/groonga-suggest-httpd query
7.1.8.3.2. Launch groonga-suggest-httpd¶
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.
7.1.8.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
7.1.8.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.
7.1.8.5. Command line parameters¶
There is one required parameter - database_path
.
7.1.8.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.
7.1.8.6. GET parameters¶
groonga-suggest-httpd accepts following GET parameters.
There are required parameters which depends on type of query.
7.1.8.6.1. Required parameters¶
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. |
7.1.8.6.2. Required parameters for learning¶
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} |
7.1.8.6.3. Required parameters for suggestion¶
Key | Description | Note |
---|---|---|
n | Specify the name of dataset for suggestion | This dataset name is used to calculate suggestion results |
7.1.8.6.4. Optional parameter¶
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} |
7.1.8.7. Return value¶
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 ofcomplete
,correct
andsuggest
.
CANDIDATE_N
The string of candidate (UTF-8).
SCORE_N
The score.