ノート
サジェスト機能の仕様はまだ確定していません。仕様は変更される可能性があります。
suggest - 指定されたクエリに対する補完・補正・提案候補を返す。
suggest types table column query [sortby [output_columns [offset [limit [frequency_threshold [conditional_probability_threshold [prefix_search]]]]]]]
suggestコマンドでどの種類の候補を返すかを指定します。
指定できる種類は以下の通りです。
- complete
- 補完を実行します。
- correct
- 補正を実行します。
- suggest
- 提案を実行します。
1つ以上の種類を指定できます。複数の種類を指定する場合は | で区切ります。以下が例です。:
補正候補を返します:
correct補正候補と提案候補を返します:
correct|suggest補完候補と補正候補と提案候補を返します:
complete|correct|suggest
item_${データセット名} というフォーマットのテーブル名を指定します。例えば、以下のコマンドでデータセットを作成した場合はテーブル名として item_query を指定します:
groonga-suggest-create-dataset /tmp/db-path query
ソートキーを指定します。
出力するカラムを指定します。
返されるレコードのオフセットを指定します。
返されるレコード数を指定します。
出現頻度に対する閾値を指定します。返されるレコードの _score 値は frequency_threshold 以上になります。
conditional_probability_threshold
条件付き確率に対する閾値を指定します。学習データに対して条件付き確率を使います。ここで使う条件付き確率は、入力した query と同じ入力があったときにクエリが検索された確率です。返されるレコードの条件付き確率は conditional_probability_threshold 以上になります。
- Default:
- 0.2
補完時に前方一致検索を実行するかどうかを指定します。
指定可能な値は以下の通りです。
- yes
- 常に前方一致検索を実行します。
- no
- 前方一致検索を実行しません。
- auto
- 他の検索でレコードが見つからない場合のみ前方一致検索を実行します。
補正時に類似検索を実行するかどうかを指定します。
指定可能な値は以下の通りです。
- yes
- 常に類似検索を実行します。
- no
- 類似検索を実行しません。
- auto
- 他の検索でレコードが見つからない場合のみ類似検索を実行します。
返されるJSON形式は以下の通りです:
{"type1": [["candidate1", score of candidate1],
["candidate2", score of candidate2],
...],
"type2": [["candidate1", score of candidate1],
["candidate2", score of candidate2],
...],
...}
type
types で指定した値。
candidate
補完・補正・提案候補。
score of candidate
対応する candidate のスコアです。スコアが高いほど補完・補正・提案候補として有力という意味になります。デフォルトでは候補は score of candidate の降順でソートされています。
以下は補完用の学習データです。
Execution example:
> load --table event_query --each 'suggest_preparer(_id, type, item, sequence, time, pair_query)'
> [
> {"sequence": "1", "time": 1312950803.86057, "item": "e"},
> {"sequence": "1", "time": 1312950803.96857, "item": "en"},
> {"sequence": "1", "time": 1312950804.26057, "item": "eng"},
> {"sequence": "1", "time": 1312950804.56057, "item": "engi"},
> {"sequence": "1", "time": 1312950804.76057, "item": "engin"},
> {"sequence": "1", "time": 1312950805.86057, "item": "engine", "type": "submit"}
> ]
[[0,1335519584.62528,1.57926440238953],6]
以下は補正用の学習データです。
Execution example:
> load --table event_query --each 'suggest_preparer(_id, type, item, sequence, time, pair_query)'
> [
> {"sequence": "2", "time": 1312950803.86057, "item": "s"},
> {"sequence": "2", "time": 1312950803.96857, "item": "sa"},
> {"sequence": "2", "time": 1312950804.26057, "item": "sae"},
> {"sequence": "2", "time": 1312950804.56057, "item": "saer"},
> {"sequence": "2", "time": 1312950804.76057, "item": "saerc"},
> {"sequence": "2", "time": 1312950805.76057, "item": "saerch", "type": "submit"},
> {"sequence": "2", "time": 1312950809.76057, "item": "serch"},
> {"sequence": "2", "time": 1312950810.86057, "item": "search", "type": "submit"}
> ]
[[0,1335519586.4057,2.00371694564819],8]
以下は提案用の学習データです。
Execution example:
> load --table event_query --each 'suggest_preparer(_id, type, item, sequence, time, pair_query)'
> [
> {"sequence": "3", "time": 1312950803.86057, "item": "search engine", "type": "submit"},
> {"sequence": "3", "time": 1312950808.86057, "item": "web search realtime", "type": "submit"}
> ]
[[0,1335519588.61046,0.801591634750366],2]
以下は補完例です。
Execution example:
> suggest --table item_query --column kana --types complete --frequency_threshold 1 --query en
[
[
0,
1335519589.6131,
0.000982522964477539
],
{
"complete": [
[
1
],
[
[
"_key",
"ShortText"
],
[
"_score",
"Int32"
]
],
[
"engine",
1
]
]
}
]
以下は補正例です。
Execution example:
> suggest --table item_query --column kana --types correct --frequency_threshold 1 --query saerch
[
[
0,
1335519589.81612,
0.000555992126464844
],
{
"correct": [
[
1
],
[
[
"_key",
"ShortText"
],
[
"_score",
"Int32"
]
],
[
"search",
1
]
]
}
]
以下は提案例です。
Execution example:
> suggest --table item_query --column kana --types suggest --frequency_threshold 1 --query search
[
[
0,
1335519590.01861,
0.000383615493774414
],
{
"suggest": [
[
2
],
[
[
"_key",
"ShortText"
],
[
"_score",
"Int32"
]
],
[
"search engine",
1
],
[
"web search realtime",
1
]
]
}
]
以下は補完・補正・提案を混ぜた例です。
Execution example:
> suggest --table item_query --column kana --types complete|correct|suggest --frequency_threshold 1 --query search
[
[
0,
1335519590.22114,
0.00113773345947266
],
{
"suggest": [
[
2
],
[
[
"_key",
"ShortText"
],
[
"_score",
"Int32"
]
],
[
"search engine",
1
],
[
"web search realtime",
1
]
],
"complete": [
[
2
],
[
[
"_key",
"ShortText"
],
[
"_score",
"Int32"
]
],
[
"search",
2
],
[
"search engine",
2
]
],
"correct": [
[
1
],
[
[
"_key",
"ShortText"
],
[
"_score",
"Int32"
]
],
[
"search",
2
]
]
}
]