`Ctrl`+`K`

# 7.20.1. はじめに

Groongaのサジェスト機能は以下の機能を提供します。:

- 補完

- 補正

- 提案

## 7.20.1.1. 補完

補完はユーザの入力を支援します。ユーザが単語の一部分のみしか入力していないときに、登録済みの語の中から補完候補の語を返します。

例えば、以下が登録済みの語とします。:

- "groonga"

- "complete"

- "correction"

- "suggest"

ユーザが"co"と入力したとき、"complete"と"correction"を補完候補として返します。これはどちらも"co"で始まっているからです。

ユーザが"sug"と入力したとき、"suggest"を返します。これは"suggest"が"sug"から始まっているからです。

ユーザが"ab"と入力したときは何も返しません。これは"ab"から始まる語が1つも登録されていないからです。

## 7.20.1.2. 補正

補正もユーザの入力を支援します。ユーザが間違った語を入力したときに登録済みの補正ペアの中から補正された語を返します。

例えば、以下のような補正ペアが登録されていたとします。

間違った語 | 正しい語
--- | ---
grroonga | groonga
gronga | groonga
gronnga | groonga

ユーザが"gronga"と入力したとき、"groonga"を返します。これは、"gronga"が「間違った語」にあり、対応する「正しい語」カラムの値が"groonga"だからです。

ユーザが"roonga"と入力したときは何も返しません。これは"roonga"が「間違った語」カラムにないからです。

## 7.20.1.3. 提案

提案は、たくさんの文書が見つかったときに、ユーザがさらに絞り込むことを支援します。ユーザがクエリを入力したとき、登録済みの関連クエリペアから追加のキーワードを選び、追加のキーワードを含んだ新しいクエリを返します。

例えば、以下の関連クエリペアが登録されているとします。:

キーワード | 関連クエリ
--- | ---
groonga | groonga search engine
search | Google search
speed | groonga speed

ユーザが"groonga"と入力したとき、"groonga search engine"を返します。これは、"groonga"が「キーワード」カラムの値にあり、対応する「関連クエリ」カラムの値が"groonga search engine"だからです。

ユーザが"MySQL"と入力したときは何も返しません。これは"MySQL"が「キーワード」カラムにないからです。

## 7.20.1.4. 学習

サジェスト機能を使う場合は、事前に登録済みのデータを用意する必要があります。これらのデータはユーザの入力を使って登録できます。これ用にgroonga-suggest-httpdコマンドとgroonga-suggest-learnerコマンドがあります。