7.3.60. suggest
#
注釈
サジェスト機能の仕様はまだ確定していません。仕様は変更される可能性があります。
7.3.60.1. 概要#
suggest - 指定されたクエリーに対する補完・補正・提案候補を返す。
suggestコマンドは指定されたクエリーに対する補完・補正・提案候補を返します。
補完・補正・提案については はじめに を参照してください。
7.3.60.2. 構文#
suggest types
table
column
query
[sortby=-_score]
[output_columns=_key,_score]
[offset=0]
[limit=10]
[frequency_threshold=100]
[conditional_probability_threshold=0.2]
[prefix_search=auto]
7.3.60.3. 使い方#
以下は補完用の学習データです。
実行例:
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,1337566253.89858,0.000355720520019531],6]
以下は補正用の学習データです。
実行例:
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,1337566253.89858,0.000355720520019531],8]
以下は提案用の学習データです。
実行例:
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,1337566253.89858,0.000355720520019531],2]
以下は補完例です。
実行例:
suggest --table item_query --column kana --types complete --frequency_threshold 1 --query en
# [
# [
# 0,
# 1337566253.89858,
# 0.000355720520019531
# ],
# {
# "complete": [
# [
# 1
# ],
# [
# [
# "_key",
# "ShortText"
# ],
# [
# "_score",
# "Int32"
# ]
# ],
# [
# "engine",
# 1
# ]
# ]
# }
# ]
以下は補正例です。
実行例:
suggest --table item_query --column kana --types correct --frequency_threshold 1 --query saerch
# [
# [
# 0,
# 1337566253.89858,
# 0.000355720520019531
# ],
# {
# "correct": [
# [
# 1
# ],
# [
# [
# "_key",
# "ShortText"
# ],
# [
# "_score",
# "Int32"
# ]
# ],
# [
# "search",
# 1
# ]
# ]
# }
# ]
以下は提案例です。
実行例:
suggest --table item_query --column kana --types suggest --frequency_threshold 1 --query search
# [
# [
# 0,
# 1337566253.89858,
# 0.000355720520019531
# ],
# {
# "suggest": [
# [
# 2
# ],
# [
# [
# "_key",
# "ShortText"
# ],
# [
# "_score",
# "Int32"
# ]
# ],
# [
# "search engine",
# 1
# ],
# [
# "web search realtime",
# 1
# ]
# ]
# }
# ]
以下は補完・補正・提案を混ぜた例です。
実行例:
suggest --table item_query --column kana --types complete|correct|suggest --frequency_threshold 1 --query search
# [
# [
# 0,
# 1337566253.89858,
# 0.000355720520019531
# ],
# {
# "complete": [
# [
# 2
# ],
# [
# [
# "_key",
# "ShortText"
# ],
# [
# "_score",
# "Int32"
# ]
# ],
# [
# "search",
# 2
# ],
# [
# "search engine",
# 2
# ]
# ],
# "correct": [
# [
# 1
# ],
# [
# [
# "_key",
# "ShortText"
# ],
# [
# "_score",
# "Int32"
# ]
# ],
# [
# "search",
# 2
# ]
# ],
# "suggest": [
# [
# 2
# ],
# [
# [
# "_key",
# "ShortText"
# ],
# [
# "_score",
# "Int32"
# ]
# ],
# [
# "search engine",
# 1
# ],
# [
# "web search realtime",
# 1
# ]
# ]
# }
# ]
7.3.60.4. 引数#
types
suggestコマンドでどの種類の候補を返すかを指定します。
指定できる種類は以下の通りです。
complete
補完を実行します。
correct
補正を実行します。
suggest
提案を実行します。
1つ以上の種類を指定できます。複数の種類を指定する場合は
|
で区切ります。以下が例です。:補正候補を返します:
correct
補正候補と提案候補を返します:
correct|suggest
補完候補と補正候補と提案候補を返します:
complete|correct|suggest
table
item_${データセット名}
というフォーマットのテーブル名を指定します。例えば、以下のコマンドでデータセットを作成した場合はテーブル名としてitem_query
を指定します:groonga-suggest-create-dataset /tmp/db-path query
column
table
で指定したテーブルにあるふりがな情報を含むカラムを指定します。ふりがなはカタカナで指定します。query
補完・補正・提案対象のクエリーを指定します。
sortby
ソートキーを指定します。
- Default:
-_score
output_columns
出力するカラムを指定します。
- Default:
_key,_score
offset
返されるレコードのオフセットを指定します。
- Default:
0
limit
返されるレコード数を指定します。
- Default:
10
frequency_threshold
出現頻度に対する閾値を指定します。返されるレコードの
_score
値はfrequency_threshold
以上になります。- Default:
100
conditional_probability_threshold
条件付き確率に対する閾値を指定します。学習データに対して条件付き確率を使います。ここで使う条件付き確率は、入力した
query
と同じ入力があったときにクエリが検索された確率です。返されるレコードの条件付き確率はconditional_probability_threshold
以上になります。
- Default:
0.2
prefix_search
補完時に前方一致検索を実行するかどうかを指定します。
指定可能な値は以下の通りです。
yes
常に前方一致検索を実行します。
no
前方一致検索を実行しません。
auto
他の検索でレコードが見つからない場合のみ前方一致検索を実行します。
- Default:
auto
similar_search
補正時に類似検索を実行するかどうかを指定します。
指定可能な値は以下の通りです。
yes
常に類似検索を実行します。
no
類似検索を実行しません。
auto
他の検索でレコードが見つからない場合のみ類似検索を実行します。
- Default:
auto
7.3.60.5. 戻り値#
返される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
の降順でソートされています。