1.2.1 - en to ja translation catalogue (596 entries)

en: Execution example::
ja: 実行例::

en: ``Groonga`` and ``Mroonga``
ja: ``Groonga`` かつ ``Mroonga``

en: ``Groonga`` and ``Mroonga`` and ``PGroonga``
ja: ``Groonga`` かつ ``Mroonga`` かつ ``PGroonga``

en: ``Groonga`` and ``PGroonga``
ja: ``Groonga`` かつ ``PGroonga``

en: ``Mroonga`` and ``PGroonga``
ja: ``Mroonga`` かつ ``PGroonga``

en: number of occurrence（ ``_nsubrecs`` ）
ja: 登場回数 ( ``_nsubrecs`` )

en: subset
ja: 部分集合

en: tag
ja: タグ

en: Summary
ja: 概要

en: ``select`` searches records that are matched to specified conditions from a table and then outputs them.
ja: ``select`` はテーブルから指定された条件にマッチするレコードを検索し、見つかったレコードを出力します。

en: ``select`` is the most important command in groonga. You need to understand ``select`` to use the full power of Groonga.
ja: ``select`` は最も重要なgroongaのコマンドです。Groongaの力を最大限に活かすためには ``select`` を理解する必要があります。

en: Syntax
ja: 構文

en: This command takes many parameters.
ja: このコマンドにはたくさんの引数があります。

en: The required parameter is only ``table``. Other parameters are optional::
ja: 必須の引数は ``table`` だけです。残りは省略できます::

en: This command has the following named parameters for dynamic columns:
ja: 以下の名前付き引数で動的カラム機能を使うことができます。

en: You can use one or more alphabets, digits, ``_`` for ``${NAME}``. For example, ``column1`` is a valid ``${NAME}``. This is the same rule as normal column. See also :ref:`column-create-name`.
ja: ``${NAME}`` には1つ以上のアルファベット、数字、 ``_``  を使うことができます。たとえば、 ``column1`` は有効な ``${NAME}`` です。これは通常のカラムと同じルールです。 :ref:`column-create-name` も見てください。

en: Parameters that have the same ``${NAME}`` are grouped.
ja: 同じ ``${NAME}`` も持つ引数は同じグループになります。

en: For example, the following parameters specify one dynamic column:
ja: たとえば、以下の引数は1つの動的カラムを指定しています。

en: The following parameters specify two dynamic columns:
ja: 以下の引数は2つの動的カラムを指定しています。

en: This command has the following named parameters for advanced drilldown:
ja: このコマンドには高度なドリルダウン機能のために以下の名前付き引数があります。

en: ``drilldown[...]`` syntax is deprecated, Use ``drilldowns[...]`` instead.
ja: ``drilldown[...]`` 構文は非推奨になりました。代わりに ``drilldowns[...]`` を使用してください。

en: You can use one or more alphabets, digits, ``_`` and ``.`` for ``${LABEL}``. For example, ``parent.sub1`` is a valid ``${LABEL}``.
ja: ``${LABEL}`` には1つ以上のアルファベット、数字、 ``_`` 、 ``.`` を使うことができます。たとえば、 ``parent.sub1`` は有効な ``${LABEL}`` です。

en: Parameters that have the same ``${LABEL}`` are grouped.
ja: 同じ ``${LABEL}`` も持つ引数は同じグループになります。

en: For example, the following parameters specify one drilldown:
ja: たとえば、以下の引数は1つのドリルダウンを指定しています。

en: The following parameters specify two drilldowns:
ja: 以下の引数は2つのドリルダウンを指定しています。

en: Usage
ja: 使い方

en: Let's learn about ``select`` usage with examples. This section shows many popular usages.
ja: 例を使いながら ``select`` の使い方を学びましょう。このセクションではよく使われる使い方を紹介します。

en: Here are a schema definition and sample data to show usage.
ja: 使い方を示すために使うスキーマ定義とサンプルデータは以下の通りです。

en: There is a table, ``Entries``, for blog entries. An entry has title, content, the number of likes for the entry and tag. Title is key of ``Entries``. Content is value of ``Entries.content`` column. The number of likes is value of ``Entries.n_likes`` column. Tag is value of ``Entries.tag`` column.
ja: ブログエントリ用の ``Entries`` テーブルがあります。各エントリはタイトルと内容と「いいね！」数、タグを持っています。タイトルは ``Entries`` のキーとします。内容は ``Entries.content`` カラムの値とします。「いいね！」数は ``Entries.n_likes`` カラムの値とします。タグは ``Entries.tag`` カラムの値とします。

en: ``Entries._key`` column and ``Entries.content`` column are indexed using ``TokenBigram`` tokenizer. So both ``Entries._key`` and ``Entries.content`` are fulltext search ready.
ja: ``Entries._key`` カラムと ``Entries.content`` カラムには ``TokenBigram`` トークナイザーを使ったインデックスを作成します。そのため、 ``Entries._key`` と ``Entries.content`` は両方とも全文検索できます。

en: OK. The schema and data for examples are ready.
ja: これで例を示すためのスキーマとデータの準備ができました。

en: Simple usage
ja: 簡単な使い方

en: Here is the most simple usage with the above schema and data. It outputs all records in ``Entries`` table.
ja: 上記のスキーマとデータを使った一番簡単な使い方は以下の通りです。これは ``Entries`` テーブルのすべてのレコードを出力します。

en: Why does the command output all records? There are two reasons. The first reason is that the command doesn't specify any search conditions. No search condition means all records are matched. The second reason is that the number of all records is 5. ``select`` command outputs 10 records at a maximum by default. There are only 5 records. It is less than 10. So the command outputs all records.
ja: どうしてこのコマンドがすべてのレコードを出力するのでしょうか？理由は2つです。1つ目の理由はこのコマンドが検索条件を何も指定していないからです。検索条件を指定しないとすべてのレコードがマッチします。2つ目の理由は全レコード数が5だからです。 ``select`` コマンドはデフォルトでは最大10レコードを出力します。この例では5レコードしかありません。これは10よりも少ないのですべてのレコードを出力します。

en: Search conditions
ja: 検索条件

en: Search conditions are specified by ``query`` or ``filter``. You can also specify both ``query`` and ``filter``. It means that selected records must be matched against both ``query`` and ``filter``.
ja: 検索条件は ``query`` または ``filter`` で指定します。 ``query`` と ``filter`` を両方指定することもできます。この場合は ``query`` と ``filter`` の両方の条件にマッチしたレコードが出力されます。

en: Search condition: ``query``
ja: 検索条件: ``query``

en: ``query`` is designed for search box in Web page. Imagine a search box in google.com. You specify search conditions for ``query`` as space separated keywords. For example, ``search engine`` means a matched record should contain two words, ``search`` and ``engine``.
ja: ``query`` はWebページの検索ボックス用に用意されています。例えば、google.co.jpにあるような検索ボックスです。 ``query`` の検索条件はスペース区切りでキーワードを指定します。例えば、 ``検索 エンジン`` は ``検索`` と ``エンジン`` という2つのキーワードを含むレコードを検索します。

en: Normally, ``query`` parameter is used for specifying fulltext search conditions. It can be used for non fulltext search conditions but ``filter`` is used for the propose.
ja: 通常は ``query`` 引数は全文検索条件を指定するために使います。全文検索条件以外も指定できますが、その用途には ``filter`` 引数の方が向いています。

en: ``query`` parameter is used with ``match_columns`` parameter when ``query`` parameter is used for specifying fulltext search conditions. ``match_columns`` specifies which columnes and indexes are matched against ``query``.
ja: ``query`` 引数で全文検索条件を指定する場合は、 ``match_columns`` 引数と一緒に使います。 ``match_columns`` はどのカラムまたはインデックスを使って ``query`` を検索するかを指定します。

en: Here is a simple ``query`` usage example.
ja: 以下は簡単な ``query`` の使用例です。

en: The ``select`` command searches records that contain a word ``fast`` in ``content`` column value from ``Entries`` table.
ja: この ``select`` コマンドは ``Entries`` テーブルの中から ``content`` カラムの値に ``fast`` を含んでいるレコードを検索します。

en: ``query`` has query syntax but its deatils aren't described here. See :doc:`/reference/grn_expr/query_syntax` for datails.
ja: ``query`` はクエリー構文という構文を使いますが、詳細はここでは説明しません。詳細は :doc:`/reference/grn_expr/query_syntax` を参照してください。

en: Search condition: ``filter``
ja: 検索条件: ``filter``

en: ``filter`` is designed for complex search conditions. You specify search conditions for ``filter`` as ECMAScript like syntax.
ja: ``filter`` は複雑な検索条件を指定するために用意されています。ECMAScriptのような構文で  ``filter`` に検索条件を指定します。

en: Here is a simple ``filter`` usage example.
ja: 以下は簡単な ``filter`` の使用例です。

en: The ``select`` command searches records that contain a word ``fast`` in ``content`` column value and has ``Groonga`` as ``_key`` from ``Entries`` table. There are three operators in the command, ``@``, ``&&`` and ``==``. ``@`` is fulltext search operator. ``&&`` and ``==`` are the same as ECMAScript. ``&&`` is logical AND operator and ``==`` is equality operator.
ja: この ``select`` コマンドは ``Entries`` テーブルの中の ``content`` カラムの値に ``fast`` という単語を含んでいて、かつ、 ``_key`` が ``Groonga`` のレコードを検索します。このコマンドの中には ``@`` と ``&&`` と ``==`` という3つの演算子があります。 ``@`` は全文検索用の演算子です。 ``&&`` と ``==`` はECMAScriptと同じ意味です。 ``&&`` が論理積用の演算子で ``==`` が等価演算子です。

en: ``filter`` has more operators and syntax like grouping by ``(...)`` its details aren't described here. See :doc:`/reference/grn_expr/script_syntax` for datails.
ja: ``filter`` にはもっと演算子や構文があります。例えば、 ``(...)`` を使った検索条件のグループ化などです。しかし、ここでは詳細は説明しません。詳細は :doc:`/reference/grn_expr/script_syntax` を参照してください。

en: Paging
ja: ページング

en: You can specify range of outputted records by ``offset`` and ``limit``. Here is an example to output only the 2nd record.
ja: ``offset`` と ``limit`` を指定することで出力されるレコードの範囲を指定できます。以下は2番目のレコードだけを出力する例です。

en: ``offset`` is zero-based. ``--offset 1`` means output range is started from the 2nd record.
ja: ``offset`` は0始まりです。 ``--offset 1`` は2番目以降のレコードを出力するという意味になります。

en: ``limit`` specifies the max number of output records. ``--limit 1`` means the number of output records is 1 at a maximium. If no records are matched, ``select`` command outputs no records.
ja: ``limit`` は出力レコード数の最大値を指定します。 ``--limit 1`` は多くても1レコードを出力するという意味になります。もし、1つもレコードがマッチしていなければ ``select`` コマンドはどのレコードも出力しません。

en: The total number of records
ja: 全レコード数

en: You can use ``--limit 0`` to retrieve the total number of recrods without any contents of records.
ja: ``--limit 0`` を使うとレコードの内容は取得せずに全レコード数だけを取得できます。

en: ``--limit 0`` is also useful for retrieving only the number of matched records.
ja: ``--limit 0`` はマッチしたレコード数だけを取得したいときにも便利です。

en: Drilldown
ja: ドリルダウン

en: You can get additional grouped results against the search result in one ``select``. You need to use two or more ``SELECT`` s in SQL but ``select`` in Groonga can do it in one ``select``.
ja: 1回の ``select`` で検索結果だけでなく、検索結果をグループ化した結果も一緒に取得できます。SQLでは2回以上 ``SELECT`` を使わなければいけない場合でも、Groongaの場合は1回の ``select`` で実現できます。

en: This feature is called as `drilldown <http://en.wikipedia.org/wiki/Drill_down>`_ in Groonga. It's also called as `faceted search <http://en.wikipedia.org/wiki/Faceted_search>`_ in other search engine.
ja: Groongaではこの機能を `ドリルダウン <http://en.wikipedia.org/wiki/Drill_down>`_ と呼んでいます。他の検索エンジンでは `ファセット検索 <http://en.wikipedia.org/wiki/Faceted_search>`_ とも呼ばれています。

en: For example, think about the following situation.
ja: 例えば、以下の状況を考えてみましょう。

en: You search entries that has ``fast`` word:
ja: ``fast`` という単語を含むエントリーを探します。

en: You want to use ``tag`` for additional search condition like ``--filter 'content @ "fast" && tag == "???"``. But you don't know suitable tag until you see the result of ``content @ "fast"``.
ja: ``--filter 'content @ "fast" && tag == "???"`` というように、追加の検索条件として ``tag`` を使いたいとします。しかし、 ``content @ "fast"`` の結果を見るまでは適切なタグはわかりません。

en: If you know the number of matched records of each available tag, you can choose suitable tag. You can use drilldown for the case:
ja: もし、有効なタグそれぞれについてマッチするレコード数がわかれば、その中から適切なタグを選ぶことができます。このような用途のためにドリルダウンを使えます。

en: ``--drilldown tag`` returns a list of pair of available tag and the number of matched records. You can avoid "no hit search" case by choosing a tag from the list. You can also avoid "too many search results" case by choosing a tag that the number of matched records is few from the list.
ja: ``--drilldown tag`` は「有効なタグ」と「そのタグを持っているレコード数」のペアをリストにして返します。このリストからタグを選ぶと「検索したけどヒット数0」という状況を避けることができます。また、リストの中からレコード数が少ないタグを選べば「検索結果が多すぎる」という状況も避けることができます。

en: You can create the following UI with the drilldown results:
ja: ドリルダウン結果を使うと次のようなUIを作ることができます。

en: Links to narrow search results. (Users don't need to input a search query by their keyboard. They just click a link.)
ja: 検索結果を絞り込むリンク。（ユーザーはキーボードから検索クエリーを入力する必要がなくなります。単にリンクをクリックすればよいからです。)

en: Most EC sites use the UI. See side menu at Amazon.
ja: 多くのECサイトではこのUIを使っています。Amazonのサイドメニューを見てください。

en: Groonga supports not only counting grouped records but also finding the maximum and/or minimum value from grouped records, summing values in grouped records and so on. See :ref:`select-drilldown-related-parameters` for details.
ja: Groongaはグループ化したレコードの数を数えるだけでなく、グループ化したレコードのカラムの値の中から最大値・最小値を見つけたり、合計値を計算したりすることができます。詳細は :ref:`select-drilldown-related-parameters` を参照してください。

en: Dynamic column
ja: 動的カラム

en: You can create zero or more columns dynamically while a ``select`` execution. You can use them for drilldown by computed value, window function and so on.
ja: 1回の ``select`` 実行中に0個以上のカラムを動的に作ることができます。この機能を使うと計算した値に対してドリルダウンしたりウィンドウ関数を使ったりできます。

en: Here is an example that uses dynamic column for drilldown by computed value. This example creates a new column named ``n_likes_class``. ``n_likes_class`` column has classified value of ``Entry.n_likes`` value. This example classifies ``Entry.n_likes`` column value ``10`` step and the lowest number in the class is the classified value. If a ``Entry.n_likes`` value is between ``0`` and ``9`` such as ``3`` and ``5``, ``n_likes_class`` value (classified value) is ``0``. If ``Entry.n_likes`` value is between ``10`` and ``19`` such as ``10`` and ``15``, ``n_likes_class`` value (classified value) is ``10``.
ja: 以下は計算した値に対してドリルダウンするために動的カラムを使う例です。この例では ``n_likes_class`` という名前のカラムを新しく作っています。 ``n_likes_class`` カラムには ``Entry.n_likes`` の値を分類した値を入れます。この例では ``Entry.n_likes`` カラムの値を ``10`` 刻みで分類し、一番小さい数値をその分類の代表値とします。もし、 ``Entry.n_likes`` の値が ``3`` や ``5`` のように ``0`` から ``9`` の間の値なら、 ``n_likes_class`` の値（分類した値）は ``0`` になります。もし、 ``Entry.n_likes`` の値が ``10`` や ``15`` のように ``10`` から ``19`` の間の値なら、 ``n_likes_class`` の値（分類した値）は ``10`` になります。

en: You can use :doc:`/reference/functions/number_classify` function for the classification. You need to register ``functions/number`` plugin by :doc:`plugin_register` command to use :doc:`/reference/functions/number_classify` function.
ja: このような分類をするために :doc:`/reference/functions/number_classify` 関数を使えます。 :doc:`/reference/functions/number_classify` 関数を使うためには :doc:`plugin_register` コマンドで ``functions/number`` プラグインを登録する必要があります。

en: This example does drilldown by ``n_likes_class`` value. The drilldown result will help you to know data trend.
ja: この例では ``n_likes_class`` の値でドリルダウンしています。このドリルダウン結果があるとデータの傾向がわかりやすくなるでしょう。

en: See :ref:`select-dynamic-column-related-parameters` for details.
ja: 詳細は :ref:`select-dynamic-column-related-parameters` を見てください。

en: Window function
ja: ウィンドウ関数

en: You can compute each record value from values of grouped records. For example, you can compute sums of each group and puts sums to each record. The difference against drilldown is drilldown can compute sums of each group but it puts sums to each group not record.
ja: グループ化したレコードの値を使って各レコードの値を計算することができます。たとえば、グループ毎に合計を計算して、合計値をすべてのレコードに格納できます。ドリルダウンもグループ毎に合計を計算できますが、すべてのレコードに合計を格納するのではなく、各グループ合計を格納する点が違います。

en: Here is the result with window function. Each record has sum:
ja: 以下はウィンドウ関数を使った結果の例です。すべてのレコードが合計値を持っています。

en: Group No.
ja: グループ番号

en: Target value
ja: 合計対象の値

en: Sum result
ja: 合計結果

en: Here is the result with drilldown. Each group has sum:
ja: 以下はドリルダウンを使った結果の例です。各グループが合計値を持っています。

en: Target values
ja: 合計対象の値

en: Window function is useful for data analysis.
ja: ウィンドウ関数はデータ解析に有用です。

en: Here is an example that sums ``Entries.n_likes`` per ``Entries.tag``:
ja: 以下は ``Entries.tag`` 毎に ``Entries.n_likes`` の合計を計算する例です。

en: See :ref:`select-window-function-related-parameters` for details.
ja: 詳細は :ref:`select-window-function-related-parameters` を見てください。

en: Typo tolerance
ja: タイプミスの許容

en: You can implement typo tolerance search by specifying how many characters to be accepted as typo. If no records are matched by the given query, Groonga searches with typo fixed query again automatically.
ja: タイプミスとして何文字許容するかを指定することでタイプミスを許容した検索を実現できます。指定されたクエリーでどのレコードにもマッチしない場合、Groongaは自動でタイプミスを修正したクエリーで再検索します。

en: The number of accepted typo characters is 0 by default. So typo tolerance search isn't enabled by default.
ja: デフォルトではタイプミスを許容する文字数は0です。つまり、デフォルトではタイプミスを許容した検索は無効になっています。

en: You can enable typo tolerance search by specifying :ref:`select-fuzzy-max-distance-ratio` or :ref:`select-fuzzy-max-distance`. In general, ``--fuzzy_max_distance_ratio 0.34`` will be a good parameter.
ja: :ref:`select-fuzzy-max-distance-ratio` または :ref:`select-fuzzy-max-distance` を指定することでタイプミスを許容した検索を実行にできます。多くの場合、 ``--fuzzy_max_distance_ratio 0.34`` が適切なパラメーターになります。

en: :ref:`select-fuzzy-max-distance-ratio` specifies how many typo characters is accepted based on the number of characters of each input term.
ja: :ref:`select-fuzzy-max-distance-ratio` は入力された各単語の文字数に応じて何文字のタイプミスを許容するかを指定します。

en: Here is a table that shows how many characters are accepted as typo with ``--fuzzy_max_distance_ratio 0.34``:
ja: 以下は ``--fuzzy_max_distance_ratio 0.34`` だとタイプミスとして何文字許容するかを示した表です。

en: The number of characters of a term
ja: 単語の文字数

en: The number of accepted typo characters
ja: 許容するタイプミスの文字数

en: In other words, Groonga doesn't accept any typo for a short term (0-2 characters term), accepts 1 typo for a middle term (3-5 characters term) and accepts 2 or more typos for a long term (6- characters term).
ja: まとめると、Groongaは短い単語（0文字から2文字の単語）ではタイプミスを許容せず、少し長い単語（3文字から5文字の単語）では1文字のタイプミスを許容し、長い単語（6文字以上の単語）では2文字以上のタイプミスを許容します。

en: Here is an example that shows that we can search ``Groonga`` with ``Moronga`` (2 typos):
ja: 以下は ``Moronga`` （2文字のタイプミス）で  ``Groonga`` を検索する例です。

en: You can specify the fixed number of typo accept characters by :ref:`select-fuzzy-max-distance`. For example, Groonga accepts 2 characters for all terms with ``--fuzzy_max_distance 2``. But ``--fuzzy_max_distance_ratio`` will be better for many use cases.
ja: :ref:`select-fuzzy-max-distance` を使ってタイプミスを許容する文字数を固定値で指定することもできます。たとえば、 ``--fuzzy_max_distance 2`` と指定するとすべての単語でタイプミスとして2文字許容します。しかし、多くのケースでは ``--fuzzy_max_distance_ratio`` の方が適切です。

en: You need correct terms for typo tolerance search. Groonga uses terms in a lexicon as correct terms. ``Terms`` is a lexicon for this case. Terms in a lexicon are generated by a tokenizer. If your data is alphabet based language such as English, you can use :doc:`/reference/tokenizers/token_ngram`. Because :doc:`/reference/tokenizers/token_ngram` tokenizes a text to (almost) words for alphabet based languages. If your data isn't alphabet based language such as Japanese, you can't use :doc:`/reference/tokenizers/token_ngram`. Because :doc:`/reference/tokenizers/token_ngram` tokenizes a text to N-characters for non alphabet based languages. You need to use morphological analyzer based tokenizer for non alphabet based languages. For example, you can use :doc:`/reference/tokenizers/token_mecab` for Japanese. (You can use :doc:`/reference/tokenizers/token_mecab` for non Japanese languages with suitable dictionary.)
ja: タイプミスを許容した検索をするためには正しい単語が必要です。Groongaは語彙表の中の単語を正しい単語として使います。このケースでは ``Terms`` が語彙表です。語彙表の中の単語はトークナイザーが生成します。データが英語のようなアルファベットベースの言語の場合、 :doc:`/reference/tokenizers/token_ngram` を使えます。なぜなら、 :doc:`/reference/tokenizers/token_ngram` はアルファベットベースの言語ではテクストを（ほぼ）単語にトークナイズするからです。データが日本語のような非アルファベットベースの言語の場合、 :doc:`/reference/tokenizers/token_ngram` は使えません。なぜなら :doc:`/reference/tokenizers/token_ngram` は非アルファベットベースの言語ではテキストをN文字毎にトークナイズするからです。非アルファベットベースの言語では形態素解析器ベースのトークナイザーを使う必要があります。たとえば、日本語には :doc:`/reference/tokenizers/token_mecab` を使えます。（適切な辞書を用意すれば日本語以外でも :doc:`/reference/tokenizers/token_mecab` を使えます。）

en: Here is an example to use typo tolerance search with Japanese text. ``--default_tokenizer TokenMecab`` for ``JapaneseTerms`` is important. ``JapaneseTerms`` is a lexicon for this case::
ja: 以下は日本語テキストでタイプミスを許容した検索をする例です。 ``JapaneseTerms`` の ``--default_tokenizer TokenMecab`` が重要です。この例では ``JapaneseTerms`` が語彙表になります。

en: See :ref:`select-fuzzy-query-related-parameters` for details.
ja: 詳細は :ref:`select-fuzzy-query-related-parameters` を見てください。

en: Parameters
ja: 引数

en: This section describes all parameters. Parameters are categorized.
ja: このセクションではすべての引数について説明します。引数はカテゴリわけしています。

en: Required parameters
ja: 必須引数

en: There is a required parameter, ``table``.
ja: ``table`` だけが必須の引数です。

en: Specifies a table to be searched. ``table`` must be specified.
ja: 検索対象のテーブルを指定します。 ``table`` は必ず指定しなければいけません。

en: If nonexistent table is specified, an error is returned.
ja: 存在しないテーブルを指定するとエラーが返ります。

en: Search related parameters
ja: 検索関係の引数

en: There are search related parameters. Typically, ``match_columns`` and ``query`` parameters are used for implementing a search box. ``filter`` parameters is used for implementing complex search feature.
ja: 検索関係の引数がいくつかあります。一般的には、検索ボックスを実装するために ``match_columns`` と ``query`` 引数を使い、複雑な検索機能を実装するために ``filter`` 引数を使います。

en: If both ``query`` and ``filter`` are specified, selected records must be matched against both ``query`` and ``filter``. If both ``query`` and ``filter`` aren't specified, all records are selected.
ja: ``query`` と ``filter`` を指定した場合は、 ``query`` と ``filter`` にマッチしたレコードが選択されます。 ``query`` と ``filter`` のどちらも指定しなかった場合はすべてのレコードが選択されます。

en: Specifies the default target column for fulltext search by ``query`` parameter value. A target column for fulltext search can be specified in ``query`` parameter. The difference between ``match_columns`` and ``query`` is whether weight and score function are supported or not. ``match_columns`` supports them but ``query`` doesn't.
ja: ``query`` 引数の値で全文検索をするときに使うデフォルトの検索対象カラムを指定します。全文検索対象のカラムは ``query`` 引数でも指定できます。検索対象カラムを ``match_columns`` で指定する場合と ``query`` で指定する場合の違いは重みとスコアー関数を指定できるかどうかです。 ``match_columns`` では指定できますが、 ``query`` では指定できません。

en: Weight is relative importance of target column. A higher weight target column gets more hit score rather than a lower weight target column when a record is matched by fulltext search. The default weight is 1.
ja: 重みは検索対象カラムの相対的な重要度です。重みの大きい検索対象カラムでマッチした場合は小さい検索対象カラムでマッチした場合よりも多くのヒットスコアがつきます。デフォルトの重みは1です。

en: Here is a simple ``match_columns`` usage example.
ja: 以下は簡単な ``match_columns`` の使用例です。

en: ``--match_columns content`` means the default target column for fulltext search is ``content`` column and its weight is 1. ``--output_columns '_key, _score'`` means that the ``select`` command outputs ``_key`` value and ``_score`` value for matched records.
ja: ``--match_columns content`` はデフォルトの全文検索対象カラムに ``content`` カラムを使用し、その重みは1、という意味になります。 ``--output_columns '_key, _score'`` はこの ``select`` コマンドがマッチしたレコードの ``_key`` の値と ``_score`` の値を出力する、ということを指定しています。

en: Pay attention to ``_score`` value. ``_score`` value is the number of matched counts against ``query`` parameter value. In the example, ``query`` parameter value is ``fast``. The fact that ``_score`` value is 1 means that ``fast`` appers in ``content`` column only once.  The fact that ``_score`` value is 2 means that ``fast`` appears in ``content`` column twice.
ja: ``_score`` の値に注目してください。 ``_score`` の値は ``query`` 引数の値に何個マッチしたかになっています。この例では、 ``query`` 引数の値は ``fast`` です。 ``_score`` の値が1ということは ``content`` カラムの中に ``fast`` が1つだけあるということです。 ``_score`` の値が2ということは ``content`` カラムの中に ``fast`` が2つあるということです。

en: To specify weight, ``column * weight`` syntax is used. Here is a weight usage example.
ja: 重みを指定するためには ``column * weight`` という構文を使います。以下は重みの使用例です。

en: ``--match_columns 'content * 2'`` means the default target column for fulltext search is ``content`` column and its weight is 2.
ja: ``--match_columns 'content * 2'`` はデフォルトの全文検索用カラムとして ``content`` カラムを使い、その重みは2という意味です。

en: Pay attention to ``_score`` value. ``_score`` value is doubled because weight is 2.
ja: ``_score`` の値に注目してください。 ``_score`` の値が2倍になっています。これは重みを2にしたからです。

en: You can specify one or more columns as the default target columns for fulltext search. If one or more columns are specified, fulltext search is done for all columns and scores are accumulated. If one of the columns is matched against ``query`` parameter value, the record is treated as matched.
ja: デフォルトの全文検索対象カラムとして複数のカラムを指定することができます。複数のカラムを指定した場合はすべてのカラムに対して全文検索が行われ、ヒットスコアが積算されます。つまり、 ``query`` 引数の値がどれか1つでも全文検索対象カラムにマッチしたら、そのレコードはマッチしたものとして扱われます。

en: To specify one or more columns, ``column1 * weight1 || column2 * weight2 || ...`` syntax is used. ``* weight`` can be omitted. If it is omitted, 1 is used for weight. Here is a one or more columns usage example.
ja: 複数のカラムを指定するには ``column1 * weight1 || column2 * weight2 || ...`` という構文を使います。 ``* weight`` は省略することができます。省略した場合は重みが1になります。以下は複数カラムの使用例です。

en: ``--match_columns '_key * 10 || content'`` means the default target columns for fulltext search are ``_key`` and ``content`` columns and ``_key`` column's weight is 10 and ``content`` column's weight is 1. This weight allocation means ``_key`` column value is more important rather than ``content`` column value. In this example, title of blog entry is more important rather thatn content of blog entry.
ja: ``--match_columns '_key * 10 || content'`` はデフォルト検索対象カラムが ``_key`` カラムと ``content`` カラムで、 ``_key`` カラムの重みは10、 ``content`` カラムの重みは1という意味です。この重み付けは ``_key`` カラムの値は ``content`` カラムの値よりも重要だという意味になります。この例では、ブログエントリのタイトルはブログエントリの内容よりも重要だということです。

en: You can also specify score function. See :doc:`/reference/scorer` for details.
ja: スコアー関数を指定することもできます。詳細は :doc:`/reference/scorer` を参照してください。

en: Note that score function isn't related to :ref:`select-scorer` parameter.
ja: スコアー関数と :ref:`select-scorer` パラメーターは関係ないので注意してください。

en: You can also specify index columns to ``--match_columns`` parameter. In such a case, you can control what index column should be used and what data column should be searched explicitly.
ja: ``--match_columns`` にはインデックスカラムを指定することもできます。その場合、どのインデックスが使われ、どのデータカラムを検索するのかを明示的に制御することができます。

en: If data column is specified to ``--match_columns``, Groonga searches related index column automatically, but it is not defined as a spec that which index column is actually selected. Thus, if multiple index columns are created against one data column, there is no way to know which index column will be selected in advance. (In most cases, latest created index column will be selected, but it is undocumented behavior.)
ja: もし、データカラムが ``--match_columns`` へと指定されていたら、Groongaは自動的に関連するインデックスカラムを探します。しかし、どのインデックスカラムが実際に選択されるかは仕様として定義されていません。つまり、もし複数のインデックスカラムが1つのデータカラムに対して作成された場合、事前にどのインデックスカラムが選択されるかはわからないということです。(多くの場合は最後に作成されたインデックスカラムが選択されますが、これはドキュメント化されていない振る舞いです。)

en: Here is a use case how to specify index column.
ja: 以下はインデックスカラムをどのように指定するかの例です。

en: index column for one data column
ja: 1つのデータカラム用のインデックスカラム

en: index column for multiple data column
ja: 複数のデータカラム用のインデックスカラム

en: If you use index column for one data column, index column which corresponds to data column is paired. Thus, ``TERMS_TABLE.INDEX_COLUMN`` should be specified. On the otherhand, if you use index column for multiple data column, all data column is searched by default. If you want to use specific multiple index column to search specific data column, Specify index column with data column name such as ``TERMS_TABLE.INDEX_COLUMN.DATA_COLUMN``. See example use case :ref:`full-text-search-with-specific-index-name` for details.
ja: 1つのデータカラム用のインデックスカラムを使う場合、データカラムに対応したインデックスカラムを指定します。つまり、 ``TERMS_TABLE.INDEX_COLUMN`` を指定するということです。一方で複数のデータカラムに対するインデックスカラムを使う場合、デフォルトではすべてのデータカラムが検索されます。もし特定のインデックスを使い、特定のデータカラムのみを検索したいなら、インデックスカラム名にデータカラム名を付与します。例えば、 ``TERMS_TABLE.INDEX_COLUMN.DATA_COLUMN`` といった具合にです。詳しい例は :ref:`full-text-search-with-specific-index-name` を参照してください。

en: Specifies the query text. Normally, it is used for fulltext search with ``match_columns`` parameter. ``query`` parameter is designed for a fulltext search form in a Web page. A query text should be formatted in :doc:`/reference/grn_expr/query_syntax`. The syntax is similar to common search form like Google's search form. For example, ``word1 word2`` means that groonga searches records that contain both ``word1`` and ``word2``. ``word1 OR word2`` means that groonga searches records that contain either ``word1`` or ``word2``.
ja: クエリーテキストを指定します。通常、全文検索をするために ``match_columns`` 引数と一緒に使います。 ``query`` 引数はWebページにある全文検索フォームで使いやすいように設計されています。クエリーテキストは :doc:`/reference/grn_expr/query_syntax` という書式を使います。この書式はGoogleの検索フォームのように一般的な検索フォームと似ています。例えば、 ``word1 word2`` は ``word1`` と ``word2`` を含んでいるレコードを検索するという意味になります。 ``word1 OR word2`` は ``word1`` または ``word2`` を含んでいるレコードを検索するという意味になります。

en: Here is a simple logical and search example.
ja: 以下は論理積を使った検索の簡単な例です。

en: The ``select`` command searches records that contain two words ``fast`` and ``groonga`` in ``content`` column value from ``Entries`` table.
ja: この ``select`` コマンドは ``Entries`` テーブルの中から ``content`` カラムの値に ``fast`` と ``groonga`` の2つの単語を含んでいるレコードを検索します。

en: Here is a simple logical or search example.
ja: 以下は論理和を使った検索の簡単な例です。

en: The ``select`` command searches records that contain one of two words ``groonga`` or ``mroonga`` in ``content`` column value from ``Entries`` table.
ja: この ``select`` コマンドは ``Entries`` テーブルの中から ``content`` カラムの値に ``fast`` または ``groonga`` のどちらかの単語を含んでいるレコードを検索します。

en: See :doc:`/reference/grn_expr/query_syntax` for other syntax.
ja: 他の構文は :doc:`/reference/grn_expr/query_syntax` を参照してください。

en: It can be used for not only fulltext search but also other conditions. For example, ``column:value`` means the value of ``column`` column is equal to ``value``. ``column:<value`` means the value of ``column`` column is less than ``value``.
ja: ``query`` では全文検索だけではなく他の条件も使えます。例えば、 ``column:value`` は ``column`` の値が ``value`` と等しいという意味です。 ``column:<value`` は ``column`` の値が ``value`` より小さいという意味です。

en: Here is a simple equality operator search example.
ja: 以下は等価演算子を使った検索の簡単な例です。

en: The ``select`` command searches records that ``_key`` column value is ``Groonga`` from ``Entries`` table.
ja: この ``select`` コマンドは ``Entries`` テーブルの中から ``_key`` カラムの値が ``Groonga`` であるレコードを検索します。

en: Here is a simple less than operator search example.
ja: 以下は比較演算子を使った検索の簡単な例です。

en: The ``select`` command searches records that ``n_likes`` column value is less than ``11`` from ``Entries`` table.
ja: この ``select`` コマンドは ``Entries`` テーブルの中から ``n_likes`` カラムの値が ``11`` より小さいレコードを検索します。

en: See :doc:`/reference/grn_expr/query_syntax` for other operations.
ja: 他の演算子は :doc:`/reference/grn_expr/query_syntax` を参照してください。

en: Specifies the filter text. Normally, it is used for complex search conditions. ``filter`` can be used with ``query`` parameter. If both ``filter`` and ``query`` are specified, there are conbined with logical and. It means that matched records should be matched against both ``filter`` and ``query``.
ja: フィルターテキストを指定します。通常、 ``filter`` は複雑な条件を指定するために使います。 ``filter`` は ``query`` 引数と一緒に使うこともできます。 ``filter`` と ``query`` を両方指定した場合はそれらを論理積で組み合わせます。つまり、マッチするレコードは ``filter`` にも ``query`` にもマッチしなければいけないということです。

en: ``filter`` parameter is designed for complex conditions. A filter text should be formatted in :doc:`/reference/grn_expr/script_syntax`. The syntax is similar to ECMAScript. For example, ``column == "value"`` means that the value of ``column`` column is equal to ``"value"``. ``column < value`` means that the value of ``column`` column is less than ``value``.
ja: ``filter`` 引数は複雑な条件用に設計されています。フィルターテキストは :doc:`/reference/grn_expr/script_syntax` 書式で指定します。この書式はECMAScriptに似ています。例えば、 ``column == "value"`` は ``column`` カラムの値が ``"value"`` と等しいという意味です。 ``column < value`` は ``column`` カラムの値が ``value`` よりも小さいという意味です。

en: See :doc:`/reference/grn_expr/script_syntax` for other operators.
ja: 他の演算子は :doc:`/reference/grn_expr/script_syntax` を参照してください。

en: You can store specified a table a result of ``select`` with ``--load_table``, ``--load-columns`` and ``--load_values`` arguments. ``--load_table`` specifies a table name for storing a result of ``select``.
ja: ``--load_table`` 、 ``--load_columns`` 、 ``--load_values`` を使って、``select`` の結果を指定したテーブルに格納できます。 ``--load_table`` は、``select`` の結果を格納するテーブルの名前を指定します。

en: You must specify a table that already exists.
ja: 既に存在するテーブルを指定する必要があります。

en: This argument must use with :ref:`select-load-columns` and :ref:`select-load-values`.
ja: この引数は、 :ref:`select-load-columns` と :ref:`select-load-values` と一緒に使う必要があります。

en: Here is an example that can store ``_id`` and ``timestamp`` that a result of ``select`` in a Logs table specified by ``--load_table``.
ja: 以下は、 ``--load_table`` で指定したLogsテーブルに ``select`` の結果である ``_id`` と ``timestamp`` を格納する例です。

en: Specifies columns of a table that specifying ``--load-table``. Stores value of columns that specified with :ref:`select-load-values` in columns that specified with this argument. You must specify columns that already exists.
ja: ``--load_table`` で指定したテーブルのカラムを指定します。:ref:`select-load-values` で指定したカラムの値をこの引数で指定したカラムに格納します。既に存在するカラムを指定する必要があります。

en: This argument must use with :ref:`select-load-table` and :ref:`select-load-values`.
ja: この引数は、 :ref:`select-load-table` と :ref:`select-load-values` と一緒に使う必要があります。

en: See example of ``--load_table`` for how to use this argument.
ja: この引数の使い方は、 ``--load_table`` の例を参照してください。

en: Specifies columns of result of ``select``. Specifies columns for storing values into columns that specified with :ref:`select-load-columns`. You must specify columns that already exists.
ja: ``select`` の結果のカラムを指定します。 :ref:`select-load-columns` で指定したカラムに値を格納するカラムを指定します。既に存在するカラムを指定する必要があります。

en: This argument must use with :ref:`select-load-table` and :ref:`select-load-columns`.
ja: この引数は、 :ref:`select-load-table` と :ref:`select-load-columns` と一緒に使う必要があります。

en: Advanced search parameters
ja: 高度な検索のための引数

en: Specifies threshold to determine whether search storategy escalation is used or not. The threshold is compared against the number of matched records. If the number of matched records is equal to or less than the threshold, the search storategy escalation is used. See :doc:`/spec/search` about the search storategy escalation.
ja: 検索方法をエスカレーションするかどうかを決定するための閾値を指定します。この閾値はマッチしたレコード数との比較に使われます。マッチしたレコード数がこの閾値以下の場合は検索方法をエスカレーションします。検索方法のエスカレーションについては :doc:`/spec/search` を参照してください。

en: The default threshold is 0. It means that search storategy escalation is used only when no records are matched.
ja: デフォルトの閾値は0です。これは1つもレコードがマッチしなかったときだけ検索方法をエスカレーションするということです。

en: The default threshold can be customized by one of the followings.
ja: デフォルトの閾値は以下の方法でカスタマイズできます。

en: ``--with-match-escalation-threshold`` option of configure
ja: configureの ``--with-match-escalation-threshold`` オプション

en: ``--match-escalation-threshold`` option of groonga command
ja: groongaコマンドの ``--match-escalation-threshold`` オプション

en: ``match-escalation-threshold`` configuration item in configuration file
ja: 設定ファイルの ``match-escalation-threshold`` 設定項目

en: Here is a simple ``match_escalation_threshold`` usage example. The first ``select`` doesn't have ``match_escalation_threshold`` parameter. The second ``select`` has ``match_escalation_threshold`` parameter.
ja: 以下は簡単な ``match_escalation_threshold`` の使用例です。最初の ``select`` は ``match_escalation_threshold`` 引数がありません。2番目の ``select`` は ``match_escalation_threshold`` 引数があります。

en: The first ``select`` command searches records that contain a word ``groo`` in ``content`` column value from ``Entries`` table. But no records are matched because the ``TokenBigram`` tokenizer tokenizes ``groonga`` to ``groonga`` not ``gr|ro|oo|on|ng|ga``. (The ``TokenBigramSplitSymbolAlpha`` tokenizer tokenizes ``groonga`` to ``gr|ro|oo|on|ng|ga``. See :doc:`/reference/tokenizers` for details.) It means that ``groonga`` is indexed but ``groo`` isn't indexed. So no records are matched against ``groo`` by exact match. In the case, the search storategy escalation is used because the number of matched records (0) is equal to ``match_escalation_threshold`` (0). One record is matched against ``groo`` by unsplit search.
ja: 最初の ``select`` コマンドは ``Entries`` テーブルから ``content`` カラムの値に ``groo`` という単語を含むレコードを検索します。しかし、この検索ではどのレコードにもマッチしません。これは、 ``TokenBigram`` トークナイザーは ``groonga`` を ``gr|ro|oo|on|ng|ga`` ではなく ``groonga`` にトークナイズするからです。（ ``TokenBigramSplitSymbolAlpha`` は ``groonga`` を ``gr|ro|oo|on|ng|ga`` にトークナイズします。詳細は :doc:`/reference/tokenizers` を見てください。）つまり、 ``groonga`` はインデックスに登録されていますが、 ``groo`` はインデックスに登録されていないということです。インデックスに登録されていないので完全一致検索では ``groo`` はどのレコードにもマッチしません。このケースでは検索方法のエスカレーションが行われています。なぜならばマッチしたレコード数（0）が ``match_escalation_threshold`` （0）の値と等しいからです。非分かち書き検索では ``groo`` で1つのレコードがマッチします。

en: The second ``select`` command also searches records that contain a word ``groo`` in ``content`` column value from ``Entries`` table. And it also doesn't find matched records. In this case, the search storategy escalation is not used because the number of matched records (0) is larger than ``match_escalation_threshold`` (-1). So no more searches aren't executed. And no records are matched.
ja: 2番目の ``select`` コマンドも ``Entries`` テーブルから ``content`` カラムの値に ``groo`` という単語を含むレコードを検索します。そして、この ``select`` コマンドもマッチしません。この場合、マッチしたレコード数（0）が ``match_escalation_threshold`` （-1）より大きいので、検索方法をエスカレーションしません。そして、1つもレコードがマッチしません。

en: Specifies how to use match escalation. See also :ref:`select-match-escalation` and :doc:`/spec/search` about the match escalation.
ja: 検索方法のエスカレーションをどのように使うかを指定します。検索方法のエスカレーションについては :ref:`select-match-escalation` と :doc:`/spec/search` を参照してください。

en: Here are available values:
ja: 指定可能な値は以下の通りです。

en: Value
ja: 値

en: Description
ja: 説明

en: Groonga uses :ref:`select-match-escalation-threshold` to determine whether match escalation is used or not.
ja: Groongaは :ref:`select-match-escalation-threshold` を使って検索方法をエスカレーションするかどうかを決めます。

en: This is the default.
ja: これがデフォルトです。

en: Groonga always uses match escalation.
ja: Groongaは常に検索方法のエスカレーションします。

en: Groonga never use match escalation.
ja: Groongaは絶対に検索方法をエスカレーションしません。

en: ``--match_escalation yes`` is stronger than ``--match_escalation_threshold 9999...999``. ``--filter 'true && column @ "query"`` with ``--match_escalation yes`` uses match escalation. ``--filter 'true && column @ "query"`` with ``--match_escalation_threshold 9999...999`` doesn't use match escalation.
ja: ``--match_escalation yes`` は ``--match_escalation_threshold 9999...999`` よりも強力です。 ``--match_escalation yes`` を指定した場合は ``--filter 'true && column @ "query"`` を実行するときに検索方法をエスカレーションします。 ``--match_escalation_threshold 9999...999`` を指定した場合は ``--filter 'true && column @ "query"`` を実行するときに検索方法をエスカレーションしません。

en: Here is a simple ``match_escalation`` usage example. The first ``select`` doesn't have ``match_escalation`` parameter. The second ``select`` has ``match_escalation`` parameter.
ja: 以下は簡単な ``match_escalation`` の使用例です。最初の ``select`` は ``match_escalation`` 引数がありません。2番目の ``select`` は ``match_escalation`` 引数があります。

en: The first ``select`` command searches records that contain a word ``groo`` in ``content`` column value from ``Entries`` table. But no records are matched because the ``TokenBigram`` tokenizer tokenizes ``groonga`` to ``groonga`` not ``gr|ro|oo|on|ng|ga``.
ja: 最初の ``select`` コマンドは ``Entries`` テーブルから ``content`` カラムの値に ``groo`` という単語を含むレコードを検索します。しかし、この検索ではどのレ"コードにもマッチしません。これは、 ``TokenBigram`` トークナイザーは ``groonga`` を ``gr|ro|oo|on|ng|ga`` ではなく ``groonga`` にトークナイズするからです。

en: The second ``select`` command also searches records that contain a word ``groo`` in ``content`` column value from ``Entries`` table. And it uses match escalation. So it can find matched records.
ja: 2番目の ``select`` コマンドも ``Entries`` テーブルから ``content`` カラムの値に ``groo`` という単語を含むレコードを検索します。しかし、この ``select`` コマンドは検索方法をエスカレーションします。そのため、この ``select`` コマンドはマッチします。

en: Use :ref:`select-query-expander` instead.
ja: 代わりに :ref:`select-query-expander` を使ってください。

en: It customs ``query`` parameter syntax. You cannot update column value by ``query`` parameter by default. But if you specify ``ALLOW_COLUMN|ALLOW_UPDATE`` as ``query_flags``, you can update column value by ``query``.
ja: ``query`` パラメーターの構文をカスタマイズします。デフォルトでは ``query`` パラメーターでカラムの値を更新することはできません。しかし、 ``query_flags`` に ``ALLOW_COLUMN|ALLOW_UPDATE`` を指定することで ``query`` でカラムの値を更新することができます。

en: ``ALLOW_PRAGMA`` enables pragma at the head of ``query``. This is not implemented yet.
ja: ``ALLOW_PRAGMA`` を指定すると ``query`` の先頭でプラグマを指定することができます。この機能はまだ実装されていません。

en: ``ALLOW_COLUMN`` enables search againt columns that are not included in ``match_columns``. To specify column, there are ``COLUMN:...`` syntaxes.
ja: ``ALLOW_COLUMN`` を指定すると ``match_columns`` で指定していないカラムでも検索できるように成ります。カラムを指定するには ``COLUMN:...`` というような構文を使います。

en: ``ALLOW_UPDATE`` enables column update by ``query`` with ``COLUMN:=NEW_VALUE`` syntax. ``ALLOW_COLUMN`` is also required to update column because the column update syntax specifies column.
ja: ``ALLOW_UPDATE`` を指定すると ``COLUMN:=NEW_VALUE`` という構文を使って ``query`` でカラムの値を更新できます。カラム更新用の構文ではカラムを指定する必要があるため、 ``ALLOW_COLUMN`` も一緒に指定する必要があります。

en: ``ALLOW_LEADING_NOT`` enables leading NOT condition with ``-WORD`` syntax. The query searches records that doesn't match ``WORD``. Leading NOT condition query is heavy query in many cases because it matches many records. So this flag is disabled by default. Be careful about it when you use the flag.
ja: ``ALLOW_LEADING_NOT`` を指定すると ``-WORD`` という構文を使って最初の条件として否定条件を指定できます。このクエリーは ``WORD`` にマッチしないレコードを検索します。最初の条件に否定条件を使ったクエリーは多くの場合重いクエリーになります。これは多くのレコードにマッチするからです。そのため、このフラグはデフォルトでは無効になっています。もし、このフラグを使う場合は重いクエリーとなるということを十分気をつけてください。

en: ``QUERY_NO_SYNTAX_ERROR`` enables never causes syntax error for query. This flag is useful when an application uses user input directly and doesn't want to show syntax error to the user and in a log. This flag is disabled by default.
ja: ``QUERY_NO_SYNTAX_ERROR`` を指定すると、クエリーは構文エラーにならなくなります。このフラグは、アプリケーションがユーザーの入力を直接使う時や、構文エラーをユーザーに見せたくない時、ログに記録したくない時に便利です。このフラグは、デフォルトで無効になっています。

en: ``NONE`` is just ignores. You can use ``NONE`` for specifying no flags.
ja: ``NONE`` は単に無視されます。フラグを指定しないときに ``NONE`` を使えます。

en: They can be combined by separated ``|`` such as ``ALLOW_COLUMN|ALLOW_UPDATE``.
ja: これらのフラグは ``ALLOW_COLUMN|ALLOW_UPDATE`` のように ``|`` で区切って同時に指定することができます。

en: The default value is ``ALLOW_PRAGMA|ALLOW_COLUMN``.
ja: デフォルト値は ``ALLOW_PRAGMA|ALLOW_COLUMN`` です。

en: Here is a usage example of ``ALLOW_COLUMN``.
ja: 以下は ``ALLOW_COLUMN`` の使用例です。

en: The ``select`` command searches records that contain ``mroonga`` in ``content`` column value from ``Entries`` table.
ja: この ``select`` コマンドは ``Entries`` テーブルの中から ``content`` カラムの値に ``mroonga`` を含んでいるレコードを検索します。

en: Here is a usage example of ``ALLOW_UPDATE``.
ja: 以下は ``ALLOW_UPDATE`` の使用例です。

en: The first ``select`` command sets ``age`` column value of all records to ``19``. The second ``select`` command outputs updated ``age`` column values.
ja: 最初の ``select`` コマンドは全てのレコードの ``age`` カラムの値を ``19`` にします。二番目の ``select`` コマンドは ``age`` カラムの値を出力します。

en: Here is a usage example of ``ALLOW_LEADING_NOT``.
ja: 以下は ``ALLOW_LEADING_NOT`` の使用例です。

en: The ``select`` command searches records that don't contain ``mroonga`` in ``content`` column value from ``Entries`` table.
ja: この ``select`` コマンドは ``Entries`` テーブルの中から ``content`` カラムの値に ``mroonga`` を含んでいないレコードを検索します。

en: Here are a schema definition and sample data to describe other flags:
ja: 他のフラグの使い方を示すために使うスキーマ定義とサンプルデータは以下の通りです。

en: Here is an example of ``QUERY_NO_SYNTAX_ERROR``:
ja: 以下は ``QUERY_NO_SYNTAX_ERROR`` の使用例です。

en: If you don't specify this flag, the quey causes a syntax error as below.
ja: このフラグを指定しない場合は、このクエリーは次のように構文エラーになります。

en: Here is a usage example of ``NONE``.
ja: 以下は ``NONE`` の使用例です。

en: The ``select`` command searches records that contain one of two words ``mroonga`` or ``_key:Groonga`` in ``content`` from ``Entries`` table. Note that ``_key:Groonga`` doesn't mean that the value of ``_key`` column is equal to ``Groonga``. Because ``ALLOW_COLUMN`` flag is not specified.
ja: この ``select`` コマンドは ``Entries`` テーブルの中から ``content`` カラムの値に ``mroonga`` または ``_key:Groonga`` のどちらかの単語を含んでいるレコードを検索します。 ``_key:Groonga`` が ``_key`` カラムの値が ``Groonga`` という条件にはならないことに注意してください。これは ``ALLOW_COLUMN`` フラグが指定されていないからです。

en: See also :doc:`/reference/grn_expr/query_syntax`.
ja: :doc:`/reference/grn_expr/query_syntax` も見てください。

en: It's for query expansion. Query expansion substitutes specific words to another words in query. Nomally, it's used for synonym search.
ja: クエリー展開用の引数です。クエリー展開はクエリー中の特定の単語を別の単語に置換します。通常は類義語検索に使います。

en: It specifies a column that is used to substitute ``query`` parameter value. The format of this parameter value is "``${TABLE}.${COLUMN}``". For example, "``Terms.synonym``" specifies ``synonym`` column in ``Terms`` table.
ja: ``query`` 引数の値を置換するために使うカラムを指定します。この引数の値の書式は「 ``${TABLE}.${COLUMN}`` 」です。例えば、 「 ``Terms.synonym`` 」は ``Terms`` テーブルの ``synonym`` カラムを指定しています。

en: Table for query expansion is called "substitution table". Substitution table's key must be ``ShortText``. So array table (``TABLE_NO_KEY``) can't be used for query expansion. Because array table doesn't have key.
ja: クエリー展開用のテーブルを「置換テーブル」と呼びます。置換テーブルのキーは ``ShortText`` にしてください。そのため、配列テーブル（ ``TABLE_NO_KEY`` ）は置換テーブルに使うことはできません。なぜなら、配列テーブルにはキーがないからです。

en: Column for query expansion is called "substitution column". Substitution column's value type must be ``ShortText``. Column type must be vector (``COLUMN_VECTOR``).
ja: クエリー展開用のカラムを「置換カラム」と呼びます。置換カラムの値の型は ``ShortText`` にしてください。カラムの種類はベクター（ ``COLUMN_VECTOR`` ）にしてください。

en: Query expansion substitutes key of substitution table in query with values in substitution column. If a word in ``query`` is a key of substitution table, the word is substituted with substitution column value that is associated with the key. Substition isn't performed recursively. It means that substitution target words in substituted query aren't substituted.
ja: クエリー展開はクエリーの中にある置換テーブルのキーを置換カラムの値で置換します。 ``query`` の中にある単語が置換テーブルのキーだったら、キーに対応する置換カラムの値でその単語を置換します。置換は再帰的に実行しません。これは、置換されたクエリー内に置換対象の単語があっても置換されないということです。

en: Here is a sample substitution table to show a simple ``query_expander`` usage example.
ja: 以下は ``query_expander`` の簡単な使用例を示すためのサンプル置換テーブルです。

en: ``Thesaurus`` substitution table has two synonyms, ``"mroonga"`` and ``"groonga"``. If an user searches with ``"mroonga"``, Groonga searches with ``"((mroonga) OR (tritonn) OR (groonga mysql))"``. If an user searches with ``"groonga"``, Groonga searches with ``"((groonga) OR (senna))"``.
ja: ``Thesaurus`` 置換テーブルは2つの類義語があります。 ``"mroonga"`` と ``"groonga"`` です。ユーザが ``"mroonga"`` で検索すると、Groongaは ``"((mroonga) OR (tritonn) OR (groonga mysql))"`` で検索します。ユーザーが ``"groonga"`` で検索すると、Groongaは ``"((groonga) OR (senna))"`` で検索します。

en: Normally, it's good idea that substitution table uses a normalizer. For example, if normalizer is used, substitute target word is matched in case insensitive manner. See :doc:`/reference/normalizers` for available normalizers.
ja: 通常、置換テーブルにはノーマライザーを指定したほうがよいです。たとえば、ノーマライザーを指定すると、置換対象の単語に対して大文字小文字区別せずにマッチするようになります。利用可能なノーマライザーは :doc:`/reference/normalizers` を参照してください。

en: Note that those synonym values include the key value such as ``"mroonga"`` and ``"groonga"``. It's recommended that you include the key value. If you don't include key value, substituted value doesn't include the original substitute target value. Normally, including the original value is better search result. If you have a word that you don't want to be searched, you should not include the original word. For example, you can implement "stop words" by an empty vector value.
ja: これらの類義語の値の中に ``"mroonga"`` や ``"groonga"`` といったキーの値も含まれていることに注意してください。このように類義語にキーの値も含めることを推奨します。もしキーの値を含めないと、置換した値には元の置換対象の値が含まれません。通常、元の値が含まれていた方がよい検索結果になります。もし、検索してほしくない単語がある場合は、元の単語を含めないでください。例えば、空のベクター値を指定することで「ストップワード」機能を実現することもできます。

en: Here is a simple ``query_expander`` usage example.
ja: 以下は簡単な ``query_expander`` の使用例です。

en: The first ``select`` command doesn't use query expansion. So a record that has ``"tritonn"`` isn't found. The second ``select`` command uses query expansion. So a record that has ``"tritonn"`` is found. The third ``select`` command doesn't use query expansion but it is same as the second ``select`` command. The third one uses expanded query.
ja: 最初の ``select`` コマンドはクエリー展開を使いません。そのため、 ``"tritonn"`` という単語を含んでいるレコードは見つかりません。2番目の ``select`` コマンドはクエリー展開を使っています。そのため、 ``"tritonn"`` という単語を含んでいるレコードが見つかります。3番目の ``select`` コマンドはクエリー展開を使っていませんが、2番目の ``select`` コマンドと同じ結果になります。これは、3番目の ``select`` コマンドは展開後のクエリーを使っているからです。

en: Each substitute value can contain any :doc:`/reference/grn_expr/query_syntax` syntax such as ``(...)`` and ``OR``. You can use complex substitution by using those syntax.
ja: それぞれの置換する値は ``(...)`` や ``OR`` といった :doc:`/reference/grn_expr/query_syntax` を使えます。これらの構文を使うことにより複雑な置換をすることができます。

en: Here is a complex substitution usage example that uses query syntax.
ja: 以下はクエリー構文を使った複雑な置換の使用例です。

en: The ``load`` command registers a new synonym ``"popular"``. It is substituted with ``((popular) OR (n_likes:>=10))``. The substituted query means that "popular" is containing the word "popular" or 10 or more liked entries.
ja: この ``load`` コマンドは新しく ``"popular"`` という類義語を登録しています。これは ``((popular) OR (n_likes:>=10))`` に置換されます。置換されたクエリーは、「popular」というのは「popular」という単語を含んでいるか10以上の「いいね！」数を持つエントリという意味になります。

en: The ``select`` command outputs records that ``n_likes`` column value is equal to or more than ``10`` from ``Entries`` table.
ja: この ``select`` コマンドは ``Entries`` テーブルの中から ``n_likes`` カラムの値が ``10`` 以上のレコードを出力します。

en: This is an experimental feature. Currently, this feature is still not stable.
ja: この機能は実験的な機能です。現状、この機能はまだ安定していません。

en: This feature requires :doc:`/reference/command/command_version` 3 or later.
ja: :doc:`/reference/command/command_version` 3 以降を指定する必要があります。

en: This feature requires that Apache Arrow is enabled in Groonga.
ja: Apache Arrow が有効である必要があります。

en: It depends on package provider whether Apache Arrow is enabled or not.
ja: パッケージの提供元によりApache Arrowが有効かどうかは異なります。

en: To check whether Apache Arrow is enabled, you can use :doc:`/reference/commands/status` command that show the result of  ``apache_arrow`` is ``true`` or not.
ja: Apache Arrow が有効かどうかは、 :doc:`/reference/commands/status` コマンドの結果で ``apache_arrow`` が ``true`` かどうかで確認することができます。

en: If Apache Arrow is disabled, you should build Groonga from the source code with enabling Apache Arrow following the steps in :doc:`/install` or request to enable Apache Arrow to the package provider.
ja: Apache Arrow が無効な場合、 :doc:`/install` の手順にしたがい、Apache Arrowを有効にしてソースコードからビルドするか、パッケージの提供元にApache Arrowを有効にするよう依頼をしてください。

en: :ref:`select-drilldown` , :ref:`drilldowns <select-advanced-drilldown-related-parameters>` and :ref:`slices <select-slice-related-parameters>` are executed in parallel when this parameter is specified ``-1`` or ``2`` or more.
ja: このパラメータの値に ``-1`` または ``2`` 以上を指定すると、 :ref:`select-drilldown` と :ref:`drilldowns <select-advanced-drilldown-related-parameters>` および :ref:`スライス <select-slice-related-parameters>` を並列で実行します。

en: In a default setting, ``drilldown``, ``drilldowns`` and ``slices`` are executed in serial. In other words, a next process is executed after a current process is finished. So, queries tend to take a long time if there are a lot of ``drilldown``, ``drilldowns`` and ``slices``.
ja: デフォルトでは各 ``drilldown`` 、 ``drilldowns`` 、 ``slices`` を直列に実行します。つまり、1つの処理が終わったら次の処理を実行します。そのため、 ``drilldown`` 、 ``drilldowns`` 、 ``slices`` がたくさんある場合は、クエリーの実行時間が長くなる傾向にあります。

en: ``n_workers`` enables to execute independent ``drilldown``, ``drilldowns`` and ``slices`` in parallel. The execution time of the total sum of processes can be shourtend by executing them in parallel. This parallel execution is done for each ``select`` command.
ja: ``n_workers`` を使うと依存関係のない複数の ``drilldown`` 、 ``drilldowns`` 、 ``slices``  を並列に実行できます。そのため、従来はすべての処理の総和分の実行時間がかかっていたところが並列に実行する分短縮できます。この並列実行は、 ``select`` コマンドごとに行います。

en: "independent" means not using ``dorilldowns.table`` to reference the results of other drilldowns or slices.
ja: 依存関係がないとは、 ``dorilldowns.table`` を使用して他のドリルダウンやスライスの結果を参照していないことです。

en: If there are dependencies as same meaning as using ``dorilldowns.table``, it wait for finish the dependent drilldowns or slices. Therefore, the degree of parallelism is reduced if they have dependencies.
ja: 依存関係がある場合、つまり、 ``drilldowns.table`` を使用している場合、依存するドリルダウンやスライスの処理の終了を待ちます。したがって依存関係がある場合は並列度が下がります。

en: Executing in parallel means using multiple CPUs at the same time. If executing in parallel without free CPU resource, it may actually slow down the execution time. This is because they have to wait for the other process being executed by the target CPU to finish.
ja: 並列に実行するということは、複数のCPUを同時に使用するということです。CPUのリソースに空きがないのに並列に実行しようとするとかえって遅くなることがあります。対象のCPUが実行している別処理が終わるのを待たないといけないからです。

en: It depends on a system configuration whether or not there are free CPU resources and how many ``n_workers`` should be specified.
ja: CPUのリソースに空きがあるかどうか、どのくらいの ``n_workers`` を指定すべきかの判断基準はどのようなシステム構成かに依存します。

en: For example, consider using :doc:`/reference/executables/groonga-server-http` on a system with 6 CPUs.
ja: たとえば、CPUが6個のシステムで :doc:`/reference/executables/groonga-server-http` を使うケースを考えます。

en: :doc:`/reference/executables/groonga-server-http` allocates 1 thread (= 1CPU) for each request.
ja: :doc:`/reference/executables/groonga-server-http` は各リクエストごとに1スレッド（= 1CPU）を割り当てて処理します。

en: When the average number of concurrent connections is 6, there are no free CPU resources because 6 CPUs are already in use. All the CPU is used to process each request.
ja: 平均同時接続数が6のとき、CPUを既に6つ使用しているのでCPUのリソースに空きはありません。各リクエストを処理するためにすべてのCPUが使われているからです。

en: When the average number of concurrent connections is 2, there are 4 free CPU resources because only 2 CPUs are already in use. When specifying ``2`` for ``n_workers``, the ``select`` command will use at most 3 CPUs, including the thread for processing requests. Therefore, if two ``select`` commands with ``2`` specified for ``n_workers`` are requested at the same time, they will use at most 6 CPUs in total and will be processed fastly by using all of the resources. When specifying greater than ``2``, the degree of parallelism can be higher than the CPU resources, so it may actually slow down the execution time.
ja: 平均同時接続数が2のとき、リクエストを処理するためにはCPUを2つしか使用していないので、4つ空きがあります。``n_workers`` に ``2`` を指定すると、 ``select`` コマンドはリクエストを処理するためのスレッドを含んで最大で3つのCPUを使用します。そのため、 ``n_workers`` に ``2`` を指定した ``select`` コマンドが2つ同時にリクエストされると、合計で最大で6つのCPUを使用することになりリソースをすべて使って高速に処理できます。 ``2`` より大きな値を指定すると、CPUのリソースよりも高い並列度になってしまうので、かえって実行が遅くなる可能性があります。

en: ``n_workers`` behaves as follows depending on the specified value.
ja: ``n_workers`` は指定した値に応じて以下の動作をします。

en: When specifying ``0`` or ``1``
ja: ``0`` または ``1`` を指定した場合

en: Executes the `select` command in serial
ja: 並列実行しません。

en: When specifying ``2`` or more
ja: ``2`` 以上を指定した場合

en: Executes the `select` command in parallel with at most the specified number of threads.
ja: 指定したスレッド数以下で並列実行します。

en: When specifying ``-1`` or less
ja: ``-1`` 以下を指定した場合

en: Executes the `select` command in parallel with the threads of at most the number of CPU cores.
ja: CPUのコア数以下のスレッドで並列実行します。

en: The default value of this parameter is ``0`` . It means that the `select` command is executed in serial in default.
ja: デフォルト値は ``0`` です。つまり並列実行しません。

en: The default value can be changed by specifying the environment variable ``GRN_SELECT_N_WORKERS_DEFAULT``.
ja: 環境変数 ``GRN_SELECT_N_WORKERS_DEFAULT`` を指定することでデフォルト値を変更することができます。

en: Output related parameters
ja: 出力関連の引数

en: Specifies output columns separated by ``,``.
ja: 出力するカラムを ``,`` 区切りで指定します。

en: Here is a simple ``output_columns`` usage example.
ja: 以下は簡単な ``output_columns`` の使用例です。

en: The ``select`` command just outputs ``_id`` and ``_key`` column values.
ja: この ``select`` コマンドは ``_id`` と ``_key`` カラムの値だけを出力します。

en: ``*`` is a special value. It means that all columns that are not :doc:`/reference/columns/pseudo`.
ja: ``*`` は特別な値で :doc:`/reference/columns/pseudo` 以外のすべてのカラムという意味です。

en: Here is a ``*`` usage example.
ja: 以下は ``*`` の使用例です。

en: The ``select`` command outputs ``_key`` pseudo column, ``content`` column and ``n_likes`` column values but doesn't output ``_id`` pseudo column value.
ja: この ``select`` コマンドは ``_key`` 擬似カラム、 ``content`` カラム、 ``n_likes`` カラムの値を出力しますが、 ``_id`` 擬似カラムの値は出力しません。

en: The default value is ``_id, _key, *``. It means that all column values except ``_score`` are outputted.
ja: デフォルト値は ``_id, _key, *`` です。これは ``_score`` 以外の全てのカラムを出力するという意味です。

en: Use :ref:`select-sort-keys` instead.
ja: 代わりに :ref:`select-sort-keys` を使ってください。

en: Specifies sort keys separated by ``,``. Each sort key is column name.
ja: ソートキーを ``,`` 区切りで指定します。それぞれのソートキーにはカラム名を指定します。

en: Here is a simple ``sort_keys`` usage example.
ja: 以下は簡単な ``sort_keys`` の使用例です。

en: The ``select`` command sorts by ``n_likes`` column value in ascending order. For records that has the same ``n_likes`` are sorted by ``_id`` in ascending order. ``"Good-bye Senna"`` and ``"Good-bye Tritonn"`` are the case.
ja: この ``select`` コマンドは ``n_likes`` カラムの値で昇順にソートします。 ``n_likes`` の値が同じレコードについては ``_id`` カラムの値で昇順にソートします。 ``"Good-bye Senna"`` と ``"Good-bye Tritonn"`` が ``_id`` カラムの値でソートしているケースです。

en: If you want to sort in descending order, add ``-`` before column name.
ja: 降順でソートしたい場合はカラム名の前に ``-`` をつけてください。

en: Here is a descending order ``sort_keys`` usage example.
ja: 以下は降順の ``sort_keys`` の使用例です。

en: The ``select`` command sorts by ``n_likes`` column value in descending order. But ascending order is used for sorting by ``_id``.
ja: この ``select`` コマンドは ``n_likes`` カラムの値で降順にソートします。しかし、 ``_id`` でソートするときは昇順でソートします。

en: You can use ``_score`` pseudo column in ``sort_keys`` if you use ``query`` or ``filter`` parameter.
ja: もし、 ``query`` または ``filter`` 引数を使っているときは、 ``sort_keys`` の中で ``_score`` 擬似カラムを使うことができます。

en: The ``select`` command sorts matched records by hit score in descending order and outputs record key and hit score.
ja: この ``select`` コマンドはマッチしたレコードをヒットスコアで降順にソートし、レコードのキーとヒットスコアを出力します。

en: If you use ``_score`` without ``query`` nor ``filter`` parameters, it's just ignored but get a warning in log file.
ja: ``query`` 引数も ``filter`` 引数も指定しないで ``_score`` を使った場合は、 ``_score`` を無視して、ログファイルに警告を出力します。

en: Specifies offset to determine output records range. Offset is zero-based. ``--offset 1`` means output range is started from the 2nd record.
ja: 出力するレコードの範囲を決めるためのオフセットを指定します。オフセットは0始まりです。 ``--offset 1`` は2番目以降のレコードを出力するという意味になります。

en: The ``select`` command outputs from the 4th record.
ja: この ``select`` コマンドは4番目以降のレコードを出力します。

en: You can specify negative value. It means that ``the number of matched records + offset``. If you have 3 matched records and specify ``--offset -2``, you get records from the 2nd (``3 + -2 = 1``. ``1`` means 2nd. Remember that offset is zero-based.) record to the 3rd record.
ja: 負の値を指定することもできます。負の値の場合は ``マッチしたレコード数 + offset`` 番目のレコードから始まる範囲という意味になります。もし、マッチしたレコードが3つあり、 ``--offset -2`` を指定した場合は2番目（ ``3 + -2 = 1`` 。 ``1`` は2番目という意味です。オフセットは0始まりということを思い出してください。） のレコードから3番目のレコードを取得します。

en: The ``select`` command outputs from the 4th record because the total number of records is ``5``.
ja: この ``select`` コマンドは4番目以降のレコードを出力します。なぜなら、全レコード数が ``5`` だからです。

en: The default value is ``0``.
ja: デフォルト値は ``0`` です。

en: Specifies the max number of output records. If the number of matched records is less than ``limit``, all records are outputted.
ja: ``limit`` は出力レコード数の最大値を指定します。 もし、マッチしたレコード数が ``limit`` よりも小さい場合はすべてのレコードが出力されます。

en: Here is a simple ``limit`` usage example.
ja: 以下は簡単な ``limit`` の使用例です。

en: The ``select`` command outputs the 3rd, the 4th and the 5th records.
ja: この ``select`` コマンドは3番目、4番目、5番目のレコードを出力します。

en: You can specify negative value. It means that ``the number of matched records + limit + 1``. For example, ``--limit -1`` outputs all records. It's very useful value to show all records.
ja: 負の値を指定することもできます。負の値の場合は、最大で ``マッチしたレコード数 + limit + 1`` 件のレコードを出力するという意味になります。 例えば、 ``--limit -1`` はすべてのレコードを出力します。これはすべてのレコードを表示する場合にとても便利です。

en: Here is a simple negative ``limit`` value usage example.
ja: 以下は負の値を使った ``limit`` の簡単な使用例です。

en: The ``select`` command outputs all records.
ja: この ``select`` コマンドはすべてのレコードを出力します。

en: The default value is ``10``.
ja: デフォルト値は ``10`` です。

en: Fuzzy query related parameters
ja: あいまいクエリー関連の引数

en: This section describes fuzzy query related parameters. See also :ref:`select-usage-typo-tolerance` as a use case of fuzzy query.
ja: このセクションではあいまいクエリー関連の引数を説明します。あいまいクエリーの利用例として :ref:`select-usage-typo-tolerance` も参照してください。

en: You need to specify at least :ref:`select-fuzzy-max-distance-ratio` or :ref:`select-fuzzy-max-distance` to use fuzzy query.
ja: あいまいクエリーを使うには少なくとも :ref:`select-fuzzy-max-distance-ratio` または :ref:`select-fuzzy-max-distance` を指定する必要があります。

en: Fuzzy query is executed automatically when no record is matched with the original query. It means that fuzzy query is implemented as one of match escalation methods. See also :ref:`select-match-escalation-threshold` for match escalation.
ja: あいまいクエリーは元のクエリーでどのレコードもヒットしないときに自動で実行されます。これはあいまいクエリーはマッチエスカレーションの方法の1つとして実現されているということです。マッチエスカレーションについては :ref:`select-match-escalation-threshold` も参照してください。

en: You need to specify :ref:`select-fuzzy-max-distance-ratio` or :ref:`select-fuzzy-max-distance` to enable fuzzy query. If you specify both of them, :ref:`select-fuzzy-max-distance-ratio` is used.
ja: あいまいクエリーを有効にするには :ref:`select-fuzzy-max-distance-ratio` または :ref:`select-fuzzy-max-distance` を指定する必要があります。もし、どちらも指定した場合は :ref:`select-fuzzy-max-distance-ratio` が使われます。

en: You can specify how long edit distance is accepted based on the target query. For most use cases, this parameter is more suitable than :ref:`select-fuzzy-max-distance`.
ja: 対象のクエリーをもとに許容する編集距離を指定できます。多くの場合、 :ref:`select-fuzzy-max-distance` よりもこの引数の方が適切です。

en: In general, long edit distance for short query isn't suitable. Because it will increase noisy results. For example, ``hye`` with edit distance ``3`` accepts the following terms:
ja: 一般的に、短いクエリーに立ちして長い編集距離を許容することは適切ではありません。なぜなら、不適切な結果を増やすからです。たとえば、 ``hye`` と編集距離 ``3`` では次の単語を許容します。

en: ``hey`` (preferable result)
ja: ``hey`` （適切な結果）

en: ``eye`` (preferable result)
ja: ``eye`` （適切な結果）

en: ``bye`` (preferable result)
ja: ``bye`` （適切な結果）

en: ``hyper`` (preferable result?)
ja: ``hyper`` （適切な結果？）

en: ``hyphen`` (preferable result?)
ja: ``hyphen`` （適切な結果？）

en: :ref:`select-fuzzy-max-distance` specifies a fixed size edit distance for all queries (both of short queries and long queries).
ja: :ref:`select-fuzzy-max-distance` はすべてのクエリー（短いクエリーにも長いクエリーにも）固定長の編集距離を指定します。

en: You can specify an edit distance for each query based on the number of characters of the target query by this parameter. For example, edit distance ``1`` is used for ``hye`` with ``--fuzzy_max_distance_ratio 0.34``. Edit distance ``2`` is used for ``hypehn`` with ``--fuzzy_max_distance_ratio 0.34``. It's calculated by ``floor(${THE_NUMBER_OF_CHARACTERS} * ${FUZZY_MAX_DISTANCE_RATIO})``:
ja: この引数を使うことで対象のクエリーの文字数に応じて各クエリーで許容する編集距離を指定できます。たとえば、 ``--fuzzy_max_distance_ratio 0.34`` の場合、 ``hye`` で許容する編集距離は ``1`` です。 ``--fuzzy_max_distance_ratio 0.34`` の場合、 ``hypehn`` で許容する編集距離は ``2`` です。これは ``floor(${文字数} * ${FUZZY_MAX_DISTANCE_RATIO})`` （ ``floor()`` は切り捨てする関数）で計算しています。

en: In general, ``--fuzzy_max_distance_ratio 0.34`` is a good value. If the value doesn't fix your use case, you can change the value.
ja: 多くの場合、 ``--fuzzy_max_distance_ratio 0.34`` が適切な値です。もしこの値があなたの使い方に合わない場合は、この値を変えることができます。

en: Here is an example that accepts 1 typo character for ``vary`` and 2 typo characters for ``Gnoonag``. This example specifies ``yes`` as :ref:`select-match-escalation` to enable fuzzy query for all queries (``vary`` and ``Gnoonag``). In general, you should not specify ``--match_escalation yes`` because it may increase noisy results.
ja: 以下は、 ``vary`` では1文字のタイプミスを許容して、 ``Gnoonag`` では2文字のタイプミスを許容する例です。この例では :ref:`select-match-escalation` に ``yes`` を指定してすべてのクエリー（ ``vary`` と ``Gnoonag`` ）であいまいクエリーを有効にしています。多くの場合、 ``--match_escalation yes`` を指定するべきではありません。なぜなら不適切な結果が増えるかもしれないからです。

en: You can specify a fixed edit distance to be accepted by this parameter. For most use cases, :ref:`select-fuzzy-max-distance` is more suitable than this parameter.
ja: この引数を使うと許容する編集距離を固定値で指定できます。多くの場合はこの引数よりも :ref:`select-fuzzy-max-distance` の方が適切です。

en: Here is an example that accepts 1 typo character for ``vary``:
ja: 以下は ``vary`` に1文字のタイプミスがあっても許容する例です。

en: You can specify the max number of terms as fixed terms. If ``hye`` is the given query, this parameter is ``2`` and ``hey``, ``eye`` and ``hyper`` are candidates of fixed terms, ``hey`` and ``eye`` (2 terms) are only used as fixed terms.
ja: 修正後の単語として最大で何単語を使うかを指定できます。もし、指定されたクエリーが ``hye`` で、この引数で ``2`` を指定して、 ``hey`` と ``eye`` と ``hyper`` が修正後の単語の候補だった場合、 ``hey`` と ``eye`` （2単語）だけが修正後の単語として使われます。

en: Here is an example that uses 1 fixed terms for ``alx``. ``all`` is only used. ``also`` isn't used.
ja: 以下は ``alx`` の修正後の単語は1単語だけ使う例です。 ``all`` だけ使われて ``also`` は使われません。

en: You can specify the number of prefix characters. If this value is ``1`` and the given term is ``hye``, the prefix is ``h``. Fixed terms must be started with ``h``. For example, ``hey`` can be used as a fixed term but ``eye`` and ``bye`` can't be used as a fixed terms.
ja: プレフィックスとして使う文字数を指定します。この値が ``1`` で、指定された単語が ``hye`` の場合、プレフィックスは ``h`` になります。修正後の単語は ``h`` から始まらないといけません。たとえば、 ``hey`` は修正後の単語として使えますが、 ``eye`` や ``bye`` は使えません。

en: This option will improve performance when a lexicon has many terms.
ja: 語彙表内の単語数が多いときにこの引数を使うと性能を向上できることがあります。

en: Here is an example that requires ``gr`` prefix for fixed terms with ``groonag`` query. ``Groonga`` (case insensitive for this case because you use :doc:`/reference/normalizers/normalizer_auto` for this case) can be used for a fixed term but ``Mroonga`` can't be used for a fixed term. Because ``Mroonga`` isn't started with ``gr``.
ja: 以下はクエリー ``groonag`` の修正後の単語のプレフィックスとして ``gr`` を必須にする例です。 ``Groonga`` （この例では :doc:`/reference/normalizers/normalizer_auto` を使っているので大文字小文字を無視する）は修正後の単語として使えますが、 ``Mroonga`` は使えません。なぜなら ``Mroonga`` は ``gr`` から始まっていないからです。

en: The default value is ``yes``.
ja: デフォルト値は ``yes`` です。

en: You can choose edit distance ``1`` or ``2`` for the transposition case. An example of the transposition case is ``hello`` and ``ehllo``. ``h`` and ``e`` is transposed. If this parameter is ``yes``, the edit distance of this case is ``1``. It's ``2`` (because insertion and deletion are needed) otherwise.
ja: 隣接文字の交換操作の場合の編集距離として ``1`` か ``2`` を選べます。隣接文字の交換の一例は ``hello`` と ``ehllo`` です。 ``h`` と ``e`` を交換することで同じ文字列になりますこの引数が ``yes`` の場合、この操作の編集距離は ``1`` です。そうでない場合、 ``2`` になります。（挿入操作と削除操作が必要になるため。）

en: Here is an example that uses edit distance ``2`` for transposition. In this example, you can't use ``Mroonga`` as a fixed term for ``groonag`` because it has edit distance ``3``:
ja: 以下は隣接文字の交換操作の編集距離に ``2`` を使う例です。この例では、 ``groonag`` の修正後の単語として ``Mroonga`` を使うことはできません。なぜなら、編集距離が ``3`` になるからです。

en: Substitute ``g`` with ``M``: ``groonag`` -> ``Mroonag``
ja: ``g`` を ``M`` で置換： ``groonag`` → ``Mroonag``

en: Add ``a``: ``Mroonag`` -> ``Mroonaga``
ja: ``a`` を追加： ``Mroonag`` → ``Mroonaga``

en: Remove ``a``: ``Mroonaga`` -> ``Mroonga``
ja: ``a`` を削除： ``Mroonaga`` → ``Mroonga``

en: The default value is ``no``.
ja: デフォルト値は ``no`` です。

en: You can choose whether tokenize the given term or not before fuzzy query. If tokenizer is :doc:`/reference/tokenizers/token_ngram` and the given term is ``he11o``, it's tokenized to ``he``, ``11`` and ``o``. If this value is ``yes``, fixed terms are searched for each of them. For example, ``hi`` is found as a fixed term of ``he``, ``12`` is found as a fixed term of ``11`` and ``x`` is found as a fixed term of ``o``. And ``hi12x`` is searched. If this value is ``no``, fixed terms are searched for ``he11o``. For example, ``hello`` is found as a fixed term of ``he11o`` and ``hello`` is searched.
ja: あいまいクエリーの前に指定された単語をトークナイズするかどうかを選ぶことができます。トークナイザーが :doc:`/reference/tokenizers/token_ngram` で指定された単語が ``he11o`` の場合、 ``he`` と ``11`` と ``o`` にトークナイズされます。この値が ``yes`` の場合、各トークナイズされたトークン毎に修正された単語を探します。たとえば、 ``he`` の修正された単語として ``hi`` が見つかり、 ``11`` の修正された単語として ``12`` が見つかり、 ``o`` の修正された単語として ``x`` が見つかります。そして、 ``hi12x`` で検索します。この値が ``no`` の場合、 ``he11o`` そのものに対して検索された単語を探します。たとえば、 ``he11o`` の修正された単語として ``hello`` が見つかり、 ``hello`` で検索します。

en: Note that each term is separated by ore or more space characters before fuzzy query is executed. For example, ``hello world`` are separated to ``hello`` and ``world`` by query parser. (See also :doc:`/reference/grn_expr/query_syntax`.) ``hello`` and ``world`` are processed separately.
ja: あいまいクエリーを実行する前に、1つ以上の空白文字で各単語に区切られることに注意してください。たとえば、クエリーパーサーは ``hello world`` を ``hello`` と ``world`` に区切ります。（ :doc:`/reference/grn_expr/query_syntax` も参照してください。） ``hello`` と ``world`` は別々に処理されます。

en: For morphological analyzer based tokenizer such as :doc:`/reference/tokenizers/token_mecab`, ``no`` is suitable. Because typo-ed term isn't tokenized as you expected for most cases. For example, ``ともて`` (a typo of ``とても``) may be tokenized to ``とも `` (adjective) and ``て`` (conjunctive particle) not ``ともて`` (adverb).
ja: :doc:`/reference/tokenizers/token_mecab` のような形態素解析器ベースのトークナイザーでは ``no`` が適切です。なぜなら、多くの場合、タイプミスがある単語は期待通りにトークナイズされないからです。たとえば、 ``ともて`` （ ``とても`` のタイプミス）は ``ともて`` （副詞）ではなく、 ``とも `` （形容詞） と ``て`` （接続助詞）にトークナイズされるかもしれません。

en: Here is an example that tokenizes the given term before fuzzy query. In this example, you can't use ``Groonga`` as a fixed term for ``gr00nga`` because ``gr``, ``00`` and ``nga`` are processed separately.
ja: 以下はあいまいクエリーの前に指定された単語をトークナイズする例です。この例では ``gr00nga`` の修正された単語として ``Groonga`` を使うことができません。なぜなら、 ``gr`` と ``00`` と ``nga`` がそれぞれ別々に処理されるからです。

en: Dynamic column related parameters
ja: 動的カラム関連の引数

en: This section describes dynamic column related parameters. You can use dynamic column for window function but this section doesn't describe window function. See :ref:`select-window-function-related-parameters` for window function.
ja: このセクションは動的カラム関連の引数について説明します。ウィンドウ関数を使うために動的カラムを使うこともできますが、このセクションではウィンドウ関数については説明しません。ウィンドウ関数については :ref:`select-window-function-related-parameters` を参照してください。

en: You can create zero or more columns and fill values into these columns while a ``select`` execution. These columns are called as "dynamic columns". You can use dynamic columns as same as normal columns after dynamic columns are created.
ja: ``select`` 実行中に0個以上のカラムを作ってそこに値を入れることができます。これらのカラムのことを「動的カラム」と呼びます。動的カラムが作られた後は通常のカラムと同じように使えます。

en: Dynamic column has performance merit because its values are computed at once and reused computed values.
ja: 動的カラムは一度計算した値を使いまわすのでパフォーマンス上のメリットがあります。

en: Dynamic column increases memory usage because its values are kept while the ``select`` execution.
ja: 動的カラムを使うとメモリー使用量が増えます。 ``select`` 実行中にカラムの値を保存し続ける必要があるからです。

en: You need to use dynamic column in the following cases:
ja: 以下のケースでは動的カラムを使う必要があります。

en: You want to name values like ``AS`` in SQL.
ja: SQLの ``AS`` のように値に名前をつけたい場合。

en: You want to use computed values for drilldown. Groonga doesn't support drilldown target value computation in drilldown.
ja: 計算した値をドリルダウンしたい場合。Groongaにはドリルダウン中に値を計算する機能はありません。

en: You want to use window function.
ja: ウィンドウ関数を使いたい場合。

en: There are some points to create dynamic columns. You must specify ``stage`` to each dynamic column to control dynamic columns creation points. It's important that you choose proper point to get better performance.
ja: いくつか動的カラムを作るタイミングがあります。各動的カラムには ``stage`` を指定する必要があります。これはどのタイミングで動的カラムを作るかを制御するためです。よりよい性能を出すために適切なタイミングを選ぶことが重要です。

en: For example, it's not a good idea that you create a dynamic column that is only used for output for all records. The number of output records will be a little even if there are many records in a table. Because you will filter, sort and limit all records and output only the limited records in many cases.
ja: たとえば、出力対象のレコードだけに必要な動的カラムを全レコードに対して作成することはオススメしません。通常、たとえテーブル内に大量のレコードがあったとしても、出力対象のレコードは少なくなります。これは、多くの場合は、テーブル内のレコードをフィルターしてソートしてレコード数を制限して、制限したレコードだけを出力するからです。

en: See :ref:`select-columns-name-stage` for ``stage`` detail.
ja: ``stage`` の詳細は :ref:`select-columns-name-stage` を見てください。

en: Here are parameters for dynamic column. They don't include window function related parameters. See :ref:`select-window-function-related-parameters` for window function related parameters:
ja: 以下は動的カラムの引数です。ウィンドウ関数関連の引数は入っていません。ウィンドウ関数関連の引数については :ref:`select-window-function-related-parameters` を見てください。

en: Name
ja: 名前

en: Default value
ja: デフォルト値

en: Required or optional
ja: 必須か省略可能か

en: Required
ja: 必須

en: Optional
ja: 省略可能

en: You need to specify multiple parameters for a dynamic column. ``${NAME}`` is the name for each dynamic column. Parameters that use the same ``${NAME}`` are treated as parameters for the same dynamic column. Here is an example to specify parameters for 2 dynamic columns (``name1`` and ``name2``)::
ja: 1つの動的カラムに対して複数のパラメーターを指定する必要があります。同じ ``${NAME}`` を使っているパラメーターは同じ動的カラムのパラメーターとして扱われます。以下は2つの動的カラム（ ``name1`` と ``name2`` ）用のパラメーターを指定する例です。::

en: Specifies when the dynamic column is created. This is a required parameter to create a dynamic column.
ja: どのタイミング（どのステージ）で動的カラムを作るかを指定します。動的カラムを作る場合はこのパラメーターは必須です。

en: Here are available stages:
ja: 指定可能なステージは以下の通りです。

en: Dynamic column is created at first.
ja: 最初に動的カラムを作成します。

en: Dynamic column is created after :ref:`select-query` and :ref:`select-filter` are evaluated.
ja: :ref:`select-query` と :ref:`select-filter` を評価してから動的カラムを作成します。

en: Dynamic column is created before :ref:`select-output-columns` is evaluated.
ja: :ref:`select-output-columns` を評価する前に動的カラムを作成します。

en: Here is the ``select`` process flow with dynamic column creation points. You should choose stage as late as possible:
ja: 以下は動的カラム作成タイミング入りの ``select`` の処理の流れです。できるだけ後のステージを選ぶべきです。

en: Creates dynamic columns for ``initial`` stage. All records have these dynamic columns.
ja: ``initial`` ステージの動的カラムを作ります。すべてのレコードはこの動的カラムを持ちます。

en: Evaluates :ref:`select-query` and :ref:`select-filter`. You can use dynamic columns created in ``initial`` stage.
ja: :ref:`select-query` と :ref:`select-filter` を評価します。 ``initial`` ステージで作った動的カラムを使えます。

en: Creates dynamic columns for ``filtered`` stage. Only filtered records have these dynamic columns.
ja: ``filtered`` ステージの動的カラムを作ります。フィルター後のレコードだけがこの動的カラムを持ちます。

en: Evaluates :ref:`select-adjuster`. You can use dynamic columns created in ``initial`` stage and ``filtered`` stage.
ja: :ref:`select-adjuster` を評価します。 ``initial`` ステージと ``filtered`` ステージで作った動的カラムを使えます。

en: Evaluates :ref:`select-scorer`. You can use dynamic columns created in ``initial`` stage and ``filtered`` stage.
ja: :ref:`select-scorer` を評価します。 ``initial`` ステージと ``filtered`` ステージで作った動的カラムを使えます。

en: Evaluates :ref:`select-sort-keys`, :ref:`select-offset` and :ref:`select-limit`. You can use dynamic columns created in ``initial`` stage and ``filtered`` stage.
ja: :ref:`select-sort-keys` 、 :ref:`select-offset` 、 :ref:`select-limit` を評価します。 ``initial`` ステージと ``filtered`` ステージで作った動的カラムを使えます。

en: Evaluates :ref:`select-slice-related-parameters`. You can use dynamic columns created in ``initial`` stage and ``filtered`` stage.
ja: :ref:`select-slice-related-parameters` を評価します。 ``initial`` ステージと ``filtered`` ステージで作った動的カラムを使えます。

en: Evaluates :ref:`select-drilldown-related-parameters` and :ref:`select-advanced-drilldown-related-parameters`. You can use dynamic columns created in ``initial`` stage and ``filtered`` stage. Note that you can create dynamic columns in each drilldown.
ja: :ref:`select-drilldown-related-parameters` と :ref:`select-advanced-drilldown-related-parameters` を評価します。 ``initial`` ステージと ``filtered`` ステージで作った動的カラムを使えます。各ドリルダウン内でも個別に動的カラムを作れるので混同しないように注意してください。

en: Creates dynamic columns for ``output`` stage. Only :ref:`select-limit` records have these dynamic columns.
ja: ``output`` ステージの動的カラムを作ります。最大 :ref:`select-limit` 件のレコードだけがこの動的カラムを持ちます。

en: Evaluates :ref:`select-output-columns`. You can use dynamic columns created in ``initial`` stage, ``filtered`` stage and ``output`` stage.
ja: :ref:`select-output-columns` を評価します。 ``initial`` ステージと ``filtered`` ステージと ``output`` ステージで作った動的カラムを使えます。

en: Here is an example that creates ``is_popular`` column at ``initial`` stage. You can use ``is_popular`` in all parameters such as ``filter`` and ``output_columns``:
ja: 以下は ``initial`` ステージで ``is_popular`` カラムを作る例です。作成した ``is_popular`` カラムは ``filter`` や ``output_columns`` を含むすべてのパラメーターで使えます。

en: Specifies flags for the dynamic column. It's the same as ``flags`` parameter for :doc:`column_create`. See :ref:`column-create-flags` for available flags.
ja: 動的カラムのフラグを指定します。これは :doc:`column_create` の ``flags`` パラメーターと同じです。利用可能なフラグは :ref:`column-create-flags` を見てください。

en: The default value is ``COLUMN_SCALAR``.
ja: デフォルト値は ``COLUMN_SCALAR`` です。

en: Here is a ``columns[${NAME}].flags`` example. It creates a vector column by ``COLUMN_VECTOR`` flags. ``plugin_register functions/vector`` is for using :doc:`/reference/functions/vector_new` function:
ja: 以下は ``columns[${NAME}].flags`` の使用例です。この例では ``COLUMN_VECTOR`` フラグを指定してベクターカラムを作成しています。 ``plugin_register functions/vector`` は :doc:`/reference/functions/vector_new` 関数を使うために実行しています。:

en: Specifies value type for the dynamic column. It's the same as ``type`` parameter for :doc:`column_create`. See :ref:`column-create-type` for available types.
ja: 動的カラムの値の型を指定します。 :doc:`column_create` の ``type`` パラメーターと同じです。利用可能な型は :ref:`column-create-type` を見てください。

en: This is a required parameter.
ja: 必須の引数です。

en: Here is an example that creates a ``ShortText`` type column. Stored value is casted to ``ShortText`` automatically. In this example, number is casted to ``ShortText``:
ja: 以下は ``ShortText`` 型のカラムを作る例です。保存された値は自動的に ``ShortText`` にキャストされます。この例では数値が ``ShortText`` にキャストされています。

en: Specifies expression that generates values for the dynamic column. The expression uses :doc:`/reference/grn_expr/script_syntax`. It's the same syntax in :ref:`select-filter`. For example, ``1 + 1``, ``string_length("Hello")``, ``column * 1.08`` and so on are valid expressions.
ja: この動的カラムの値を生成する式を指定します。式には :doc:`/reference/grn_expr/script_syntax` を使います。この構文は :ref:`select-filter` と同じです。たとえば、 ``1 + 1`` 、 ``string_length("Hello")`` 、 ``column * 1.08`` などは妥当な式です。

en: You need to specify :doc:`/reference/window_function` as ``value`` value and other window function related parameters when you use window function. See :ref:`select-window-function-related-parameters` for details.
ja: ウィンドウ関数を使う場合は、 ``value`` の値に :doc:`/reference/window_function` を指定し、他のウィンドウ関数のパラメーターも指定する必要があります。詳細は :ref:`select-window-function-related-parameters` を見てください。

en: Here is an example that creates a new dynamic column that stores the number of characters of content. This example uses :doc:`/reference/functions/string_length` function in ``functions/string`` plugin to compute the number of characters in a string. :doc:`plugin_register` is used to register ``functions/string`` plugin:
ja: 以下は内容の文字数を格納するための動的カラムを1つ作る例です。この例では文字数を数えるために ``functions/string`` プラグイン内の :doc:`/reference/functions/string_length` 関数を使っています。 ``functions/string`` プラグインを登録するために :doc:`plugin_register` を使っています。

en: Window function related parameters
ja: ウィンドウ関数関連の引数

en: This section describes window function related parameters. You need to use dynamic column for using window function. See :ref:`select-dynamic-column-related-parameters` for dynamic column.
ja: このセクションはウィンドウ関数関連の引数について説明します。ウィンドウ関数を使うためには動的カラムを使う必要があります。動的カラムについては :ref:`select-dynamic-column-related-parameters` を見てください。

en: Window function in Groonga is similar to window function in SQL. Normal function computes its result with only the current record. On the other hand, window function computes its result with multiple records. Window function is useful to data analysis because it can process multiple records.
ja: Groongaのウィンドウ関数はSQLのウィンドウ関数と似ています。通常の関数は現在のレコードだけを使って結果を計算します。一方、ウィンドウ関数は複数のレコードを使って結果を計算します。複数のレコードを処理できるのでウィンドウ関数はデータ解析に有用です。

en: You can find supported window functions at :doc:`/reference/window_function`. For example, :doc:`/reference/window_functions/window_sum` is a window function. It sums numbers in the target records.
ja: サポートしているウィンドウ関数は :doc:`/reference/window_function` で確認できます。たとえば、 :doc:`/reference/window_functions/window_sum` はウィンドウ関数です。このウィンドウ関数は対象レコードの数値の合計を計算します。

en: Window function processes records that are grouped by the specified group keys. For example, window function processes three groups (``Hello`` group, ``Groonga`` group and ``Senna`` group) in the following case. :doc:`/reference/window_functions/window_sum` sums ``n_likes`` values in each group:
ja: ウィンドウ関数は指定したグループキーでグループ化したレコードを処理します。たとえば、以下のケースではウィンドウ関数は3つのグループ（ ``Hello`` グループ、 ``Groonga`` グループ、 ``Senna`` グループ）を処理します。 :doc:`/reference/window_functions/window_sum` は各グループ毎に ``n_likes`` の値の合計を計算します。

en: Group key value
ja: グループキーの値

en: ``n_likes`` value
ja: ``n_likes`` の値

en: :doc:`/reference/window_functions/window_sum` result
ja: :doc:`/reference/window_functions/window_sum` の結果

en: You can specify no group keys. In the case, window function processes only one group that includes all records. :doc:`/reference/window_functions/window_sum` sums all ``n_likes`` values in the following case:
ja: グループキーを指定しないこともできます。この場合、ウィンドウ関数はすべてのレコードを含んだ1つのグループだけを処理します。以下のケースでは :doc:`/reference/window_functions/window_sum` はすべての ``n_likes`` の値の合計を計算します。

en: Window function processes records in each group in the specified order. You can specify no sort keys like the above group keys example.
ja: ウィンドウ関数は各グループのレコードを指定された順に処理します。前述のグループキーの例のようにソートキーを指定しないこともできます。

en: The behavior when you specify no sort keys depends on each window function specification. For example, :doc:`/reference/window_functions/window_sum` uses different behavior whether sort keys are specified or not. If you specify not sort keys, :doc:`/reference/window_functions/window_sum` sums values of all records in the group and puts it to all target records like the above group keys example. If you specify sort keys, :doc:`/reference/window_functions/window_sum` behaves as cumulative sum. :doc:`/reference/window_functions/window_sum` sums values of all records in the group in sequence and puts the current sum to the current record like the following:
ja: ソートキーを指定しなかったときの挙動は各ウィンドウ関数の仕様に依存します。たとえば、 :doc:`/reference/window_functions/window_sum` はソートキーを指定したときと指定しないときで挙動が変わります。ソートキーを指定しなかったときは、 :doc:`/reference/window_functions/window_sum` はグループの全レコードの値の合計を計算し、すべての対象レコードに合計値を格納します。これは前述のグループキーの例での挙動です。ソートキーを指定したときは、 :doc:`/reference/window_functions/window_sum` は累積和を計算します。 :doc:`/reference/window_functions/window_sum` はグループの全レコードの合計を順番に計算し、各レコードにはそのレコードを処理した時点の合計値を格納します。以下に例を示します。

en: Sort key value
ja: ソートキーの値

en: Note
ja: 備考

en: The first record in group No. 1. (``5 = 5``)
ja: グループ番号1の最初のレコード。（ ``5 = 5`` ）

en: The first record in group No. 2. (``10 = 10``)
ja: グループ番号2の最初のレコード。（ ``10 = 10`` ）

en: The second record in group No. 2. (``10 + 15 = 25``)
ja: グループ番号2の2つ目のレコード。（ ``10 + 15 = 25`` ）

en: The second record in group No. 3. (``5 + 3 = 8``)
ja: グループ番号3の2つ目のレコード。（ ``5 + 3 = 8`` ）

en: The first record in group No. 3. (``5 = 5``)
ja: グループ番号3の最初のレコード。（ ``5 = 5`` ）

en: Here are parameters for window function. You need to specify both window function related parameters and required dynamic columns parameters. Because window function is implemented based on dynamic column. See :ref:`select-dynamic-column-related-parameters` for dynamic column related parameters:
ja: 以下はウィンドウ関数のパラメーターです。ウィンドウ関数関連のパラメーターと動的カラム関連のパラメーターを指定する必要があります。なぜならウィンドウ関数は動的カラムの上に実装されているからです。動的カラム関連のパラメーターについては :ref:`select-dynamic-column-related-parameters` を見てください。

en: Use :doc:`/reference/window_function`.
ja: :doc:`/reference/window_function` を使います。

en: Required if ``columns[${NAME}].window.group_keys`` isn't specified.
ja: ``columns[${NAME}].window.group_keys`` を指定しない場合は必須です。

en: Required if ``columns[${NAME}].window.sort_keys`` isn't specified.
ja: ``columns[${NAME}].window.sort_keys`` を指定しない場合は必須です。

en: Specifies sort keys in each group. Window function processes records in each group in the specified order.
ja: 各グループでのソートキーを指定します。ウィンドウ関数は各グループのレコードを指定された順に処理します。

en: Sort keys are separated by ``,``. Each sort key is column name. It's the same as :ref:`select-sort-keys`.
ja: ソートキーを ``,`` 区切りで指定します。それぞれのソートキーにはカラム名を指定します。これは :ref:`select-sort-keys` と同じです。

en: You must specify :ref:`select-columns-name-window-sort-keys` or :ref:`select-columns-name-window-group-keys` to use window function.
ja: ウィンドウ関数を使う場合は :ref:`select-columns-name-window-sort-keys` または :ref:`select-columns-name-window-group-keys` を使う必要があります。

en: Here is an example that computes cumulative sum per ``Entries.tag``. Each group is sorted by ``Entries._key``:
ja: 以下は ``Entries.tag`` 毎に累積和を計算する例です。各グループ内のレコードは ``Entries._key`` でソートします。

en: Specifies group keys. Window function processes records in each group. If you specify no group keys, window function processes one group that includes all records.
ja: グループキーを指定します。ウィンドウ関数は各グループのレコードを処理します。グループキーを指定しない場合はウィンドウ関数はすべてのレコードを含んだ1つのグループを処理します。

en: Group keys are separated by ``,``. Each group key is column name. It's the same as :ref:`select-drilldown`.
ja: グループキーを ``,`` 区切りで指定します。それぞれのグループキーにはカラム名を指定します。これは :ref:`select-drilldown` と同じです。

en: Here is an example that computes sum per ``Entries.tag``:
ja: 以下は ``Entries.tag`` 毎に合計を計算する例です。

en: Drilldown related parameters
ja: ドリルダウン関連の引数

en: This section describes basic drilldown related parameters. Advanced drilldown related parameters are described in another section.
ja: このセクションでは基本的なドリルダウン関連の引数について説明します。高度なドリルダウン関連の引数は他のセクションで説明します。

en: Specifies keys for grouping separated by ``,``.
ja: グループ化するときに使うキーを ``,`` 区切りで指定します。

en: Matched records by specified search conditions are grouped by each key. If you specify no search condition, all records are grouped by each key.
ja: 指定した検索条件にマッチしたレコードを指定したキーのそれぞれでグループ化します。検索条件を指定していない場合はすべてのレコードを指定したキーのそれぞれでグループ化します。

en: Here is a simple ``drilldown`` example:
ja: 以下は簡単な ``drilldown`` の使用例です。

en: The ``select`` command outputs the following information:
ja: この ``select`` コマンドは次の情報を出力します。

en: There is one record that has "Hello" tag.
ja: 「Hello」タグを持つレコードが1つある。

en: There is two records that has "Groonga" tag.
ja: 「Groonga」タグを持つレコードが2つある。

en: There is two records that has "Senna" tag.
ja: 「Senna」タグを持つレコードが2つある。

en: Here is a ``drilldown`` with search condition example:
ja: 以下は検索条件付きで ``drilldown`` を使う例です。

en: In records that have 5 or larger as ``n_likes`` value:
ja: ``n_likes`` の値が5以上のレコードの中には…

en: Here is a ``drilldown`` with multiple group keys example:
ja: 以下は複数のグループ化キーを指定する ``drilldown`` の例です。

en: About ``tag``:
ja: ``tag`` について:

en: About ``n_likes``:
ja: ``n_likes`` について:

en: Use :ref:`select-drilldown-sort-keys` instead.
ja: :ref:`select-drilldown-sort-keys` を代わりに使ってください

en: Specifies sort keys for drilldown outputs separated by ``,``. Each sort key is column name.
ja: ドリルダウン結果のソートキーを ``,`` 区切りで指定します。それぞれのソートキーはカラム名を指定します。

en: You can refer the number of grouped records by ``_nsubrecs`` :doc:`/reference/columns/pseudo`.
ja: グループ化されたレコード数は ``_nsubrecs`` :doc:`/reference/columns/pseudo` 擬似カラムで参照できます。

en: Here is a simple ``drilldown_sort_keys`` example:
ja: 以下は簡単な ``drilldown_sort_keys`` の使用例です。

en: Drilldown result is sorted by the number of grouped records (= ``_nsubrecs`` ) in descending order. If there are grouped results that the number of records in the group are the same, these grouped results are sorted by grouped key (= ``_key`` ) in ascending order.
ja: ドリルダウン結果は「グループに含まれるレコード数」（= ``_nsubrecs`` ）で降順にソートします。「グループに含まれるレコード数」が同じグループが複数あった場合は、グループ化に使ったキー（= ``_key`` ）で昇順にソートします。

en: The sort keys are used in all group keys specified in ``drilldown``:
ja: ``drilldown`` で指定したすべてのグループキーで同じソートキーを使います。

en: The same sort keys are used in ``tag`` drilldown and ``n_likes`` drilldown.
ja: ``tag`` のドリルダウンでも ``n_likes`` のドリルダウンでも同じソートキーを使っています。

en: If you want to use different sort keys for each drilldown, use :ref:`select-advanced-drilldown-related-parameters`.
ja: それぞれのドリルダウンで異なるソートキーを使いたい場合は :ref:`select-advanced-drilldown-related-parameters` を参照してください。

en: Specifies output columns for drilldown separated by ``,``.
ja: ドリルダウン結果から出力するカラムを ``,`` 区切りで指定します。

en: Here is a ``drilldown_output_columns`` example:
ja: 以下は ``drilldown_output_columns`` の使用例です。

en: The ``select`` command just outputs grouped key.
ja: この ``select`` コマンドはグループ化したキーを出力していくだけです。

en: If grouped key is a referenced type column (= column that its type is a table), you can access column of the table referenced by the referenced type column.
ja: グループ化したキーが参照型のカラム（型がテーブルのカラム）だった場合、参照型のカラムが参照しているテーブルのカラムにもアクセスできます。

en: Here are a schema definition and sample data to show drilldown against referenced type column:
ja: 参照型に対してドリルダウンする方法を示すために使うスキーマ定義とサンプルデータは以下の通りです。

en: ``Tags`` table is a referenced table. ``Items.tag`` is a referenced type column.
ja: ``Tags`` テーブルは参照されているテーブルです。 ``Items.tag`` は参照型のカラムです。

en: You can refer ``Tags.label`` by ``label`` in ``drilldown_output_columns``:
ja: ``Tags.label`` は ``drilldown_output_columns`` の中では ``label`` で参照できます。

en: You can use ``*`` to refer all columns in referenced table (= ``Tags``):
ja: ``*`` を使うと、参照されているテーブル（= ``Tags`` ）のすべてのカラムを参照できます。

en: ``*`` is expanded to ``label, priority``.
ja: ``*`` は ``label, priority`` に展開されます。

en: The default value of ``drilldown_output_columns`` is ``_key, _nsubrecs``. It means that grouped key and the number of records in the group are output.
ja: ``drilldown_output_columns`` のデフォルト値は ``_key, _nsubrecs`` です。グループ化に使ったキーとグループのレコード数を出力する、ということです。

en: You can use more :doc:`/reference/columns/pseudo` in ``drilldown_output_columns`` such as ``_max``, ``_min``, ``_sum`` and ``_avg`` when you use :ref:`select-drilldown-calc-types`. See ``drilldown_calc_types`` document for details.
ja: :ref:`select-drilldown-calc-types` を使うと、 ``drilldown_output_columns`` の中で ``_max`` 、 ``_min`` 、 ``_sum`` 、 ``_avg`` といった :doc:`/reference/columns/pseudo` も使えるようになります。詳細は ``drilldown_calc_types`` のドキュメントを参照してください。

en: Specifies offset to determine range of drilldown output records. Offset is zero-based. ``--drilldown_offset 1`` means output range is started from the 2nd record.
ja: ドリルダウン結果を出力するレコードの範囲を決めるためのオフセットを指定します。オフセットは0始まりです。 ``--offset 1`` は2番目以降のレコードを出力するという意味になります。

en: Here is a ``drilldown_offset`` example:
ja: 以下は簡単な ``drilldown_offset`` の使用例です。

en: The ``select`` command outputs from the 2nd record.
ja: この ``select`` コマンドは2番目以降のレコードを出力します。

en: You can specify negative value. It means that ``the number of grouped results + offset``. If you have 3 grouped results and specify ``--drilldown_offset -2``, you get grouped results from the 2st (``3 + -2 = 1``. ``1`` means 2nd. Remember that offset is zero-based.) grouped result to the 3rd grouped result.
ja: 負の値を指定することもできます。負の値の場合は ``グループの数 + offset`` 番目のレコードから始まる範囲という意味になります。もし、グループの数が3つあり、 ``--offset -2`` を指定した場合は1番目（ ``3 + -2 = 1`` 。 ``1`` は2番目です。オフセットは0始まりということを思い出してください。） のグループから3番目のグループが出力されます。

en: The ``select`` command outputs from the 2nd grouped result because the total number of grouped results is ``3``.
ja: この ``select`` コマンドは2番目以降のグループを出力します。なぜなら、全グループ数が ``3`` だからです。

en: The default value of ``drilldown_offset`` is ``0``.
ja: ``drilldown_offset`` のデフォルト値は ``0`` です。

en: Specifies the max number of groups in a drilldown. If the number of groups is less than ``drilldown_limit``, all groups are outputted.
ja: ``drilldown_limit`` は出力グループ数の最大値を指定します。もし、グループ数 ``limit`` よりも小さい場合はすべてのグループが出力されます。

en: Here is a ``drilldown_limit`` example:
ja: 以下は ``drilldown_limit`` の使用例です。

en: The ``select`` command outputs the 2rd and the 3rd groups.
ja: この ``select`` コマンドは2番目、3番目のレコードを出力します。

en: You can specify negative value. It means that ``the number of groups + drilldown_limit + 1``. For example, ``--drilldown_limit -1`` outputs all groups. It's very useful value to show all groups.
ja: 負の値を指定することもできます。負の値の場合は、最大で ``マッチしたレコード数 + drilldown_limit + 1`` 件のレコードを出力するという意味になります。 例えば、 ``--drilldown_limit -1`` はすべてのレコードを出力します。これはすべてのレコードを表示する場合にとても便利です。

en: Here is a negative ``drilldown_limit`` value example.
ja: 以下は ``drilldown_limit`` に負の値を指定する例です。

en: The ``select`` command outputs all groups.
ja: この ``select`` コマンドはすべてのグループを出力します。

en: The default value of ``drilldown_limit`` is ``10``.
ja: ``drilldown_limit`` のデフォルト値は ``10`` です。

en: Specifies how to calculate (aggregate) values in grouped records by a drilldown. You can specify multiple calculation types separated by "``,``". For example, ``MAX,MIN``.
ja: ドリルダウンでグループ内のレコードの値を計算（集計）する方法を指定します。「 ``,`` 」で区切ることで複数の計算タイプを指定することもできます。たとえば、 ``MAX,MIN`` といった具合です。

en: Calculation target values are read from a column of grouped records. The column is specified by :ref:`select-drilldown-calc-target`.
ja: 計算対象の値はグループ内のレコードのカラムから取得します。このカラムは :ref:`select-drilldown-calc-target` で指定します。

en: You can read calculated value by :doc:`/reference/columns/pseudo` such as ``_max`` and ``_min`` in :ref:`select-drilldown-output-columns`.
ja: 計算した値は :ref:`select-drilldown-output-columns` の中で ``_max`` や ``_min`` のような :doc:`/reference/columns/pseudo` を指定すると取得できます。

en: You can use the following calculation types:
ja: 以下の計算タイプを使えます。

en: Type name
ja: タイプ名

en: :doc:`/reference/columns/pseudo` name
ja: :doc:`/reference/columns/pseudo` 名

en: Need :ref:`select-drilldown-calc-target`
ja: :ref:`select-drilldown-calc-target` が必要か

en: Nothing.
ja: なし。

en: Not needs.
ja: 必要ない。

en: Just ignored.
ja: 無視されます。

en: Counting grouped records. It's always enabled. So you don't need to specify it.
ja: グループ内のレコードの数を数える。常に有効なので指定する必要はない。

en: Needs.
ja: 必要。

en: Finding the maximum integer value from integer values in grouped records.
ja: グループ内のレコードの整数値の中で最大の値を見つける。

en: Finding the minimum integer value from integer values in grouped records.
ja: グループ内のレコードの整数値の中で最小の値を見つける。

en: Summing integer values in grouped records.
ja: グループ内のレコードの整数値の合計を計算する。

en: Averaging integer/float values in grouped records.
ja: グループ内のレコードの整数値・浮動小数点数値の平均を計算する。

en: Here is a ``MAX`` example:
ja: 以下は ``MAX`` の使用例です。

en: The ``select`` command groups all records by ``tag`` column value, finding the maximum ``n_likes`` column value for each group and outputs pairs of grouped key and the maximum ``n_likes`` column value for the group. It uses ``_max`` :doc:`/reference/columns/pseudo` to read the maximum ``n_likes`` column value.
ja: この ``select`` コマンドは ``tag`` カラムの値ですべてのレコードをグループ化します。その後、各グループについて最大の ``n_likes`` カラムの値を探し、「グループ化に使ったキー」と「 ``n_likes`` カラムの値の最大値」のペアのリストを出力します。 ``n_likes`` カラムの値の最大値を参照するために ``_max`` :doc:`/reference/columns/pseudo` を使っています。

en: Here is a ``MIN`` example:
ja: 以下は ``MIN`` の使用例です。

en: The ``select`` command groups all records by ``tag`` column value, finding the minimum ``n_likes`` column value for each group and outputs pairs of grouped key and the minimum ``n_likes`` column value for the group. It uses ``_min`` :doc:`/reference/columns/pseudo` to read the minimum ``n_likes`` column value.
ja: この ``select`` コマンドは ``tag`` カラムの値ですべてのレコードをグループ化します。その後、各グループについて最小の ``n_likes`` カラムの値を探し、「グループ化に使ったキー」と「 ``n_likes`` カラムの値の最小値」のペアのリストを出力します。 ``n_likes`` カラムの値の最小値を参照するために ``_min`` :doc:`/reference/columns/pseudo` を使っています。

en: Here is a ``SUM`` example:
ja: 以下は ``SUM`` の使用例です。

en: The ``select`` command groups all records by ``tag`` column value, sums all ``n_likes`` column values for each group and outputs pairs of grouped key and the summed ``n_likes`` column values for the group. It uses ``_sum`` :doc:`/reference/columns/pseudo` to read the summed ``n_likes`` column values.
ja: この ``select`` コマンドは ``tag`` カラムの値ですべてのレコードをグループ化します。その後、各グループについて ``n_likes`` カラムの合計を計算し、「グループ化に使ったキー」と「 ``n_likes`` カラムの値の合計」のペアのリストを出力します。 ``n_likes`` カラムの値の合計を参照するために ``_sum`` :doc:`/reference/columns/pseudo` を使っています。

en: Here is a ``AVG`` example:
ja: 以下は ``AVG`` の使用例です。

en: The ``select`` command groups all records by ``tag`` column value, averages all ``n_likes`` column values for each group and outputs pairs of grouped key and the averaged ``n_likes`` column values for the group. It uses ``_avg`` :doc:`/reference/columns/pseudo` to read the averaged ``n_likes`` column values.
ja: この ``select`` コマンドは ``tag`` カラムの値ですべてのレコードをグループ化します。その後、各グループについて ``n_likes`` カラムの平均を計算し、「グループ化に使ったキー」と「 ``n_likes`` カラムの値の平均」のペアのリストを出力します。 ``n_likes`` カラムの値の合計を参照するために ``_avg`` :doc:`/reference/columns/pseudo` を使っています。

en: Here is an example that uses all calculation types:
ja: 以下はすべての計算タイプを使う例です。

en: The ``select`` command specifies multiple calculation types separated by "``,``" like ``MAX,MIN,SUM,AVG``. You can use ``_nsubrecs`` :doc:`/reference/columns/pseudo` in :ref:`select-drilldown-output-columns` without specifying ``COUNT`` in ``drilldown_calc_types``. Because ``COUNT`` is always enabled.
ja: この ``select`` コマンドは複数の計算タイプを ``MAX,MIN,SUM,AVG`` というように「 ``,`` 」で区切って指定しています。 :ref:`select-drilldown-output-columns` で ``COUNT`` を指定していなくても ``_nsubrecs`` :doc:`/reference/columns/pseudo` を使えます。これは、 ``COUNT`` は常に有効だからです。

en: The default value of ``drilldown_calc_types`` is ``NONE``. It means that only ``COUNT`` is enabled. Because ``NONE`` is just ignored and ``COUNT`` is always enabled.
ja: ``drilldown_calc_types`` のデフォルト値は ``NONE`` です。これは、 ``COUNT`` だけが有効になっているという意味です。なぜなら、 ``NONE`` は単に無視されて、 ``COUNT`` は常に有効だからです。

en: Specifies the target column for :ref:`select-drilldown-calc-types`.
ja: :ref:`select-drilldown-calc-types` の計算対象のカラムを指定します。

en: If you specify a calculation type that needs a target column such as ``MAX`` in :ref:`select-drilldown-calc-types` but you omit ``drilldown_calc_target``, the calculation result is always ``0``.
ja: :ref:`select-drilldown-calc-types` で ``MAX`` のように計算対象のカラムが必要な計算タイプを指定したにも関わらず ``drilldown_calc_target`` を省略すると、計算結果は常に ``0`` になります。

en: You can specify only one column name like ``--drilldown_calc_target n_likes``. You can't specify multiple column name like ``--drilldown_calc_target _key,n_likes``.
ja: ``--drilldown_calc_target n_likes`` というように1つのカラム名だけしか指定できません。 ``--drilldown_calc_target _key,n_likes`` というように複数のカラムを指定することはできません。

en: You can use referenced value from the target record by combining "``.``" like ``--drilldown_calc_target reference_column.nested_reference_column.value``.
ja: ``--drilldown_calc_target reference_column.nested_reference_column.value`` というように「 ``.`` 」でつなげることで対象レコードから参照している値を使うことができます。

en: See :ref:`select-drilldown-calc-types` to know how to use ``drilldown_calc_target``.
ja: ``drilldown_calc_target`` の使い方は :ref:`select-drilldown-calc-types` を参照してください。

en: The default value of ``drilldown_calc_target`` is ``null``. It means that no calculation target column is specified.
ja: ``drilldown_calc_target`` のデフォルト値は ``null`` です。これは計算対象カラムは何も指定されていないということです。

en: Specifies the filter condition against the drilled down result.
ja: ドリルダウン結果に対するフィルター条件を指定します。

en: The syntax is :doc:`/reference/grn_expr/script_syntax`. It's the same as :ref:`select-filter`.
ja: 構文は :doc:`/reference/grn_expr/script_syntax` です。これは :ref:`select-filter` と同じです。

en: Here is an example to suppress tags that are occurred only once:
ja: 以下は1回しか出現していないタグを除く例です。

en: Specifies the max number of records of the drilldown target table (filtered result) to use drilldown. If the number of filtered result is larger than the specified value, some records in filtered result aren't used for drilldown.
ja: ドリルダウン対象のテーブル（フィルター結果）の中のうち最大で何レコードをドリルダウンに使うかを指定します。もし、フィルター結果のレコード数が指定した値より大きかったらフィルターした結果内のいくつかのレコードはドリルダウンには使われません。

en: If the specified value is negative, it's processed same as :ref:`select-limit`. For example, ``-1`` uses all records. The default value is ``-1``. It means that all filtered records are used by default.
ja: 指定した値が負の場合は :ref:`select-limit` と同じように処理されます。たとえば、 ``-1`` はすべてのレコードを使います。デフォルト値は ``-1`` です。つまり、デフォルトではフィルター結果のすべてのレコードを使ってドリルダウンを実行します。

en: This feature is useful when filtered result may be very large. A drilldown against large filtered result may be slow. You can limit the max number of records to be used for drilldown by this feature.
ja: この機能はフィルター結果が非常に大きくなるかもしれない場合に有用です。大きなフィルター結果に対するドリルダウンは遅くなることがあります。この機能を使うことでドリルダウンに使うレコード数を制限できます。

en: Here is an example to limit the max number of records to be used for drilldown. The last 2 records, ``{"_id": 4, "tag": "Senna"}`` and ``{"_id": 5, "tag": "Senna"}``, aren't used:
ja: 以下はドリルダウンに使う最大レコード数を制限する例です。最後の2レコード（ ``{"_id": 4, "tag": "Senna"}`` と ``{"_id": 5, "tag": "Senna"}`` ）は使われていません。

en: Advanced drilldown related parameters
ja: 高度なドリルダウン関連のパラメーター

en: You can get multiple drilldown results by specifying multiple group keys by :ref:`select-drilldown`. But you need to use the same configuration for all drilldowns. For example, :ref:`select-drilldown-output-columns` is used by all drilldowns.
ja: :ref:`select-drilldown` に複数のグループキーを指定することで複数のドリルダウン結果を取得できます。しかし、すべてのドリルダウンで同じ設定を使う必要があります。例えば、すべてのドリルダウンで同じ :ref:`select-drilldown-output-columns` の値が使われます。

en: You can use a configuration for each drilldown by the following parameters:
ja: 以下の引数を使うことで、各ドリルダウンで別々の設定を使うことができます。

en: ``${LABEL}`` is a variable. You can use the following characters for ``${LABEL}``:
ja: ``${LABEL}`` は変数です。 ``${LABEL}`` には次の文字を使うことができます。

en: Alphabets
ja: アルファベット

en: Digits
ja: 数字

en: ``${NAME}`` is a variable. You can use the following characters for ``${NAME}``:
ja: ``${NAME}`` は変数です。 ``${NAME}`` には次の文字を使うことができます。

en: You can use more characters but it's better that you use only these characters.
ja: 他の文字も使えますが、これらの文字だけを使ってください。

en: Parameters that has the same ``${LABEL}`` value are grouped. Grouped parameters are used for one drilldown.
ja: 同じ ``${LABEL}`` の値を持つ引数は同じグループになります。1つのドリルダウンで同じグループの引数を一緒に使います。

en: For example, there are 2 groups for the following parameters:
ja: 例えば、以下の引数は2つのグループにわかれます。

en: ``drilldowns[label1].keys`` and ``drilldowns[label1].output_columns`` are grouped. ``drilldowns[label2].keys`` and ``drilldowns[label2].output_columns`` are also grouped.
ja: ``drilldowns[label1].keys`` と ``drilldowns[label1].output_columns`` が同じグループです。 ``drilldowns[label2].keys`` と ``drilldowns[label2].output_columns`` は別のグループです。

en: In ``label1`` group, ``_key`` is used for group key and ``_nsubrecs`` is used for output columns.
ja: ``label1`` グループでは、グループキーとして ``_key`` を使って、出力カラムとして ``_nsubrecs`` を使います。

en: In ``label2`` group, ``tag`` is used for group key and ``_key,_nsubrecs`` is used for output columns.
ja: ``label2`` グループでは、グループキーとして ``tag`` を使って、出力カラムとして ``_key,_nsubrecs`` を使います。

en: See document for corresponding ``drilldown_XXX`` parameter to know how to use it for the following parameters:
ja: 以下の引数の使い方は対応する ``drilldown_XXX`` 引数のドキュメントを参照してください。

en: See document for corresponding ``columns[${NAME}].XXX`` parameter to know how to use it for the following parameters:
ja: 以下の引数の使い方は対応する ``columns[${NAME}].XXX`` 引数のドキュメントを参照してください。

en: The following parameters are needed more description:
ja: 以下の引数は追加の説明が必要です。

en: Output format is different a bit. It's also needed more description.
ja: 出力フォーマットは少し違います。これも追加の説明が必要です。

en: :ref:`select-drilldown` can specify multiple keys for multiple drilldowns. But it can't specify multiple keys for one drilldown.
ja: :ref:`select-drilldown` は複数のキーを指定して複数のドリルダウンを指定できます。しかし、1つのドリルダウンに複数のキーを指定することはできません。

en: ``drilldowns[${LABEL}].keys`` can't specify multiple keys for multiple drilldowns. But it can specify multiple keys for one drilldown.
ja: ``drilldowns[${LABEL}].keys`` は複数のキーを指定して複数のドリルダウンを指定することはできません。しかし、1つのドリルダウンに複数のキーを指定することができます。

en: You can specify multiple keys separated by "``,``".
ja: 複数のキーを「``,`` 」区切りで指定します。

en: Here is an example to group by multiple keys, ``tag`` and ``n_likes`` column values:
ja: 以下は ``tag`` カラムと ``n_likes`` カラムの値を使った複数キーでのグループ化の例です。

en: ``tag.n_likes`` is used as the label for the drilldown parameters group. You can refer grouped keys by ``_value.${KEY_NAME}`` syntax in :ref:`select-drilldowns-label-output-columns`. ``${KEY_NAME}`` is a column name to be used by group key. ``tag`` and ``n_likes`` are ``${KEY_NAME}`` in this case.
ja: ``tag.n_likes`` はドリルダウン引数グループのラベルです。グループ化に使ったそれぞれのキーを参照するときは :ref:`select-drilldowns-label-output-columns` で ``_value.${KEY_NAME}`` という構文を使います。 ``${KEY_NAME}`` にはグループキーを指定したときに使ったカラム名を使います。この場合は ``${KEY_NAME}`` に ``tag`` と ``n_keys`` を使います。

en: Note that you can't use ``_value.${KEY_NAME}`` syntax when you just specify one key as ``drilldowns[${LABEL}].keys`` like ``--drilldowns[tag].keys tag``. You should use ``_key`` for the case. It's the same rule in :ref:`select-drilldown-output-columns`.
ja: ``--drilldowns[tag].keys tag`` のように ``drilldowns[${LABEL}].keys`` にキーを1つだけしか指定していない場合は ``_value.${KEY_NAME}`` 構文を使うことはできません。この場合は ``_key`` を使ってください。これは、 :ref:`select-drilldown-output-columns` と同じルールです。

en: Specify ``${LABLE}`` of other ``drilldowns`` or ``slices``.
ja: 他の ``drilldowns`` または ``slices`` の ``${LABLE}`` を指定します。

en: You can drilldown the result of specified ``${LABLE}``. It means that this parameter enables a nested drilldown.
ja: 指定した ``${LABLE}`` の結果をドリルダウンします。つまり、このパラメータを使うと多段ドリルダウンができます。

en: Here is an example to execute the nested drilldown. The final result takes first drilldown by ``tag`` and then 2nd drilldown by ``category`` against first result.
ja: 以下は、多段ドリルダウンを行う例です。最初に ``tag`` でドリルダウンし、次にそのドリルダウン結果を ``category`` でドリルダウンしたものが最終的な結果です。

en: In this example; The schema contains the table named as ``NestedDrilldownMemo`` which has the column named as ``tag``, the table named as ``NestedDrilldownTags`` which has the column named as ``category``.
ja: この例のスキーマでは、 ``NestedDrilldownMemo`` テーブルに ``tag`` カラムを作成し、 ``NestedDrilldownTags`` テーブルに ``category`` カラムを作成しています。

en: ``Tag`` drilldowns ``NestedDrilldownMemos`` by ``tag``. Thus, the result of ``Tag`` contains one row each for ``Groonga``, ``Mroonga`` and ``Rroonga``. And then, ``Category`` drilldowns ``Tag`` by ``category``. Thus the result of ``Category`` contains two records has ``C/C++`` and one records has ``Ruby``.
ja: ``Tag`` は ``NestedDrilldownMemos`` を ``tag`` でドリルダウンしています。したがって、 ``Tag`` の結果には ``Groonga`` 、 ``Mroonga`` および ``Rroonga`` が1件ずつ含まれています。そして ``Category`` は ``Tag`` を ``category`` でドリルダウンしています。したがって、 ``Category`` の結果には ``C/C++`` が2件、 ``Ruby`` が1件含まれています。

en: This specifies how to expand key when keys for drilldown are vector. Currently, ``NONE`` or ``POWER_SET`` are able to be specified.
ja: ドリルダウン対象のキーがベクターのときの、キーの展開方法を指定します。現状は ``NONE`` または ``POWER_SET`` が指定可能です。

en: This work only time when one key is target for drilldown. This doesn't work time when more than 2 keys are target for drilldown.
ja: ドリルダウン対象のキーが1つの場合にのみ使用可能です。キーが2つ以上の場合は無視されます。

en: This works as same as ``key_vector_expansion`` is not specified.
ja: ``key_vector_expansion`` に何も指定しない場合と同じ動作です。

en: Keys would not be expanded. Each element within a vector works as each key.
ja: キーを展開しません。ベクター内の各要素がそれぞれキーとなります。

en: Following is a sample to aggregate total number of individual and combination occurrence for 3 tags, ``Groonga``, ``Mroonga``, and ``PGroonga``.
ja: 以下は ``Groonga`` 、 ``Mroonga`` 、 ``PGroonga`` という３つのタグに対して、これらのタグの登場回数を集計する例です。

en: Following are facts from the results.
ja: 実行結果から以下のことがわかります。

en: This aggregates total with expanding vectors to the power set. In this case, a target vector is considered as multi set. Thus, each element is considered as an individual element when there are multiple elements with same value.
ja: ベクターをべき集合に展開して集計します。 このとき、対象のベクターを多重集合とみなします。 多重集合とみなすので、同じ値の要素が複数ある場合、それぞれ別の要素とみなします。

en: For example, there is a vector ``[A, B, C]``. In this case, a target set is ``{A, B, C}``. The power set is aggrigation for all of subsets within a set. Following shows all of subset within a set ``{A, B, C}``. However, Groonga does not use empty set, that number of elements is 0. It is because empty set is not useful for results of drilldown. Please report at `issue <https://github.com/groonga/groonga/issues>`_, if you find a case to use empty set.
ja: ベクター ``[A, B, C]`` を例に考えます。この場合、対象となる集合は ``{A, B, C}`` です。 べき集合は、集合のすべての部分集合の集合なので、まず、 ``{A, B, C}`` のすべての部分集合を以下に示します。 ただし、Groongaは要素数が0の集合（空集合）は使いません。ドリルダウン結果に使うには有益ではないからです。 空集合も使ったほうがよいユースケースがある場合は `issue <https://github.com/groonga/groonga/issues>`_ で報告してください。

en: Subset with 1 element
ja: 要素数1の部分集合

en: Subset with 2 elements
ja: 要素数2の部分集合

en: Subset with 3 elements
ja: 要素数3の部分集合

en: Those are all subsets for ``{A, B, C}``. Since the power set is aggregation of those subsets, ``{{A}, {B}, {C}, {A, B}, {B, C}, {A, C}, {A, B, C}}`` is a power set for the vector.
ja: 以上が ``{A, B, C}`` のすべての部分集合です。 べき集合は、これらの部分集合の集合なので、 ``{{A}, {B}, {C}, {A, B}, {B, C}, {A, C}, {A, B, C}}`` がこのベクターのべき集合となります。

en: ``POWER_SET`` aggregates with each subset for ``{{A}, {B}, {C}, {A, B}, {B, C}, {A, C}, {A, B, C}}``.
ja: ``POWER_SET`` は、この ``{{A}, {B}, {C}, {A, B}, {B, C}, {A, C}, {A, B, C}}`` の各部分集合で集計します。

en: For example, there is a case to aggregate ``[A, B, C]`` and ``[B, C, D]`` with the power set.
ja: 例として、 ``[A, B, C]`` と ``[B, C, D]`` をべき集合で集計する場合を考えます。

en: A power set for ``[A, B, C]`` is ``{{A}, {B}, {C}, {A, B}, {B, C}, {A, C}, {A, B, C}}`` as previously explained. Likewise a power set for ``[B, C, D]`` is ``{{B}, {C}, {D}, {B, C}, {C, D}, {B, D}, {B, C, D}}``.
ja: ``[A, B, C]`` のべき集合は前述の通り ``{{A}, {B}, {C}, {A, B}, {B, C}, {A, C}, {A, B, C}}``  で、 ``[B, C, D]`` のべき集合は同様に ``{{B}, {C}, {D}, {B, C}, {C, D}, {B, D}, {B, C, D}}``  となります。

en: Aggregating occurrence of each subset in each power set is shown in result as follows.
ja: この各べき集合で登場した部分集合ごとに集計します。登場回数を集計した場合は以下の結果になります。

en: This aggregating methods is useful when it is requirement to sum total number of occurrence for individual tags and combination of tags at once.
ja: この集計方法は、例えばタグの登場回数と、タグの組み合わせの登場回数を一度に集計したい場合に便利です。

en: Following is an example to aggregate total occurrence for individual and combination of 3 tags, ``Groonga``, ``Mroonga``, and ``PGroonga``.
ja: 以下は ``Groonga`` 、 ``Mroonga`` 、 ``PGroonga`` という３つのタグに対して、これらのタグの登場回数と、 これらの組み合わせの登場回数を集計する例です。

en: With this aggregation result, following information would be known.
ja: この集計結果から、以下のことがわかります。

en: This result allows to analyze correlation between each tag and combination such as whether often used. For example with this sample, it can be analyzed that ``Groonga`` and ``Mroonga`` are used twice at same time and within those twice, ``PGroonga`` is also used at same time for once.
ja: この結果から、どのタグの組み合わせがよく使われているかといった相関関係を分析できます。 例えば、 ``Groonga`` と ``Mroonga`` が同時に使われている回数は2回で、そのうち更に ``PGroonga`` が同時に使われている回数が1回、というような分析ができます。

en: It's almost same as :ref:`select-drilldown-output-columns`. The difference between :ref:`select-drilldown-output-columns` and ``drilldowns[${LABEL}].output_columns`` is how to refer group keys.
ja: ``drilldowns[${LABEL}].output_columns`` はほとんど :ref:`select-drilldown-output-columns` と同じです。 :ref:`select-drilldown-output-columns` と ``drilldowns[${LABEL}].output_columns`` の違いはグループキーの参照方法です。

en: :ref:`select-drilldown-output-columns` uses ``_key`` :doc:`/reference/columns/pseudo` to refer group key. ``drilldowns[${LABEL}].output_columns`` also uses ``_key`` :doc:`/reference/columns/pseudo` to refer group key when you specify only one group key by :ref:`select-drilldowns-label-keys`.
ja: :ref:`select-drilldown-output-columns` はグループキーを参照するために ``_key`` :doc:`/reference/columns/pseudo` を使います。 ``drilldowns[${LABEL}].output_columns`` も :ref:`select-drilldowns-label-keys` で1つだけしかグループキーを指定していない場合は、グループキーを参照するために ``_key`` :doc:`/reference/columns/pseudo` を使います。

en: Here is an example to refer single group key by ``_key`` :doc:`/reference/columns/pseudo`:
ja: 以下は1つだけ指定したグループキーを参照するために ``_key`` :doc:`/reference/columns/pseudo` を使う例です。

en: But you can't refer each group key by ``_key`` :doc:`/reference/columns/pseudo` in ``drilldowns[${LABEL}].output_columns``. You need to use ``_value.${KEY_NAME}`` syntax. ``${KEY_NAME}`` is a column name that is used for group key in :ref:`select-drilldowns-label-keys`.
ja: ``drilldownss[${LABEL}].output_columns`` で各グループキーを参照するために ``_key`` :doc:`/reference/columns/pseudo` を使うことはできません。 ``_value.${KEY_NAME}`` 構文を使います。 ``${KEY_NAME}`` には :ref:`select-drilldowns-label-keys` でグループキーを指定するために使ったカラム名を使います。

en: Here is an example to refer each group key in multiple group keys by ``_value.${KEY_NAME}`` syntax:
ja: 以下は複数のグループキーを使ったときに ``_value.${KEY_NAME}`` 構文でそれぞれのグループキーを参照する例です。

en: Why ``_value.${KEY_NAME}`` syntax?
ja: どうして ``_value.${KEY_NAME}`` 構文なの？

en: It's implementation specific information.
ja: これは実装よりの情報です。

en: ``_key`` is a vector value. The vector value is consists of all group keys. You can see byte sequence of the vector value by referring ``_key`` in ``drilldowns[${LABEL}].output_columns``.
ja: ``_key`` はベクターの値です。このベクターの値はすべてのグループキーから成ります。 ``drilldowns[${LABEL}].output_columns`` で ``_key`` を参照するとこのベクターの値のバイト列を確認することができます。

en: There is one grouped record in ``_value`` to refer each grouped values when you specify multiple group keys to :ref:`select-drilldowns-label-keys`. So you can refer each group key by ``_value.${KEY_NAME}`` syntax.
ja: :ref:`select-drilldowns-label-keys` に複数のグループキーを指定したとき、各グループの値を参照するために ``_value`` にグループのレコードが1つだけ保存されています。そのため、各グループキーを参照するために ``_value.${KEY_NAME}`` 構文を使えます。

en: On the other hand, there is no grouped record in ``_value`` when you specify only one group key to :ref:`select-drilldowns-label-keys`. So you can't refer group key by ``_value.${KEY_NAME}`` syntax.
ja: 一方、 :ref:`select-drilldowns-label-keys` に1つのグループキーしか指定していない場合は、 ``_value`` にグループのレコードを保存しません。そのため、 ``_value.${KEY_NAME}`` 構文でグループキーを参照できません。

en: Dynamic column is created after ``drilldowns[${LABEL}].filter`` is evaluated.
ja: ``drilldowns[${LABEL}].filter`` を評価してから動的カラムを作成します。

en: Dynamic column is created before :ref:`select-drilldowns-label-output-columns` is evaluated.
ja: :ref:`select-drilldowns-label-output-columns` を評価する前に動的カラムを作成します。

en: ``filtered`` stage and ``output`` stage will be able to use from 10.0.3 or later.
ja: ``filtered`` ステージと ``output`` ステージは10.0.3以降で使用できます。

en: Here is one drilldown process flow with dynamic column creation points. You should choose stage as late as possible:
ja: 以下は動的カラム作成タイミング入りの各ドリルダウンの処理の流れです。できるだけ後のステージを選ぶべきです。

en: Evaluates :ref:`select-drilldowns-label-keys`, ``drilldowns[${LABEL}].calc_types`` and ``drilldowns[${LABEL}].calc_target``.
ja: :ref:`select-drilldowns-label-keys` 、 ``drilldowns[${LABEL}].calc_types`` 、 ``drilldowns[${LABEL}].calc_target`` を評価します。

en: Creates dynamic columns for ``initial`` stage. All drilldown result records have these dynamic columns.
ja: ``initial`` ステージの動的カラムを作ります。すべてのドリルダウン結果レコードはこの動的カラムを持ちます。

en: Evaluates ``drilldowns[${LABEL}].filter``. You can use dynamic columns created in ``initial`` stage.
ja: ``drilldowns[${LABEL}].filter`` を評価します。 ``initial`` ステージで作った動的カラムを使えます。

en: Evaluates ``drilldowns[${LABEL}].sort_keys``, ``drilldowns[${LABEL}].offset`` and ``drilldowns[${LABEL}].limit``. You can use dynamic columns created in ``initial`` stage and ``filtered`` stage.
ja: ``drilldowns[${LABEL}].sort_keys`` 、 ``drilldowns[${LABEL}].offset`` 、 ``drilldowns[${LABEL}].limit`` を評価します。 ``initial`` と`filtered` ステージで作った動的カラムを使えます。

en: Creates dynamic columns for ``output`` stage. Only ``drilldowns[${LABEL}].limit`` records have these dynamic columns.
ja: ``output`` ステージの動的カラムを作ります。最大 ``drilldowns[${LABEL}].limit`` 件のレコードだけがこの動的カラムを持ちます。

en: Evaluates :ref:`select-drilldowns-label-output-columns`. You can use dynamic columns created in ``initial`` stage, ``filtered`` stage, and ``output`` stage.
ja: :ref:`select-drilldowns-label-output-columns` を評価します。 ``initial`` ステージと ``filtered`` ステージと ``output`` ステージで作った動的カラムを使えます。

en: Here is a ``drilldowns[${LABEL}].columns[${NAME}].stage`` example. It creates ``is_popular`` column at ``initial`` stage. You can use ``is_popular`` in all parameters such as ``drilldowns[${LABEL}].filter`` and ``drilldowns[${LABEL}].output_columns``:
ja: 以下は ``drilldowns[${LABEL}].columns[${NAME}].stage`` の使用例です。この例では ``initial`` ステージで ``is_popular`` カラムを作っています。作成した ``is_popular`` カラムは ``drilldowns[${LABEL}].filter`` と ``drilldowns[${LABEL}].output_columns`` で使えます。

en: Output format for ``drilldowns[${LABEL}]`` style
ja: ``drilldowns[${LABEL}]`` スタイルの出力フォーマット

en: There is a difference in output format between :ref:`select-drilldown` and :ref:`select-drilldowns-label-keys`. :ref:`select-drilldown` uses array to output multiple drilldown results. :ref:`select-drilldowns-label-keys` uses pairs of label and drilldown result.
ja: :ref:`select-drilldown` と :ref:`select-drilldowns-label-keys` には出力フォーマットに違いがあります。 :ref:`select-drilldown` は複数のドリルダウン結果を出力するために配列を使います。 :ref:`select-drilldowns-label-keys` は「ラベル」と「ドリルダウン結果」のペアの集まりを使います。

en: :ref:`select-drilldown` uses the following output format::
ja: :ref:`select-drilldown` の出力フォーマットは以下の通りです::

en: :ref:`select-drilldowns-label-keys` uses the following output format::
ja: :ref:`select-drilldowns-label-keys` の出力フォーマットは以下の通りです::

en: Slice related parameters
ja: スライス関連の引数

en: This section describes slice related parameters.
ja: このセクションではスライス関連のパラメーターについて説明します。

en: Here are parameters for slice:
ja: スライスのパラメーターは以下の通りです。

en: Required if ``--slices[${LABEL}].filter`` isn't specified.
ja: ``--slices[${LABEL}].filter`` を指定していないときは必須です。

en: Required if ``--slices[${LABEL}].query`` isn't specified.
ja: ``--slices[${LABEL}].query`` を指定していないときは必須です。

en: Cache related parameter
ja: キャッシュ関連の引数

en: Specifies whether caching the result of this query or not.
ja: このクエリーの結果をキャッシュするかどうかを指定します。

en: If the result of this query is cached, the next same query returns response quickly by using the cache.
ja: このクエリーの結果がキャッシュしてあると、次に同じクエリーを実行するときはキャッシュを使って高速にレスポンスを返すことができます。

en: It doesn't control whether existing cached result is used or not.
ja: これは既存のキャッシュされた結果を使うかどうかを指定するものではありません。

en: Don't cache the output of this query.
ja: このクエリーの出力をキャッシュしない。

en: Cache the output of this query. It's the default value.
ja: このクエリーの出力をキャッシュする。デフォルト値。

en: Here is an example to disable caching the result of this query:
ja: このクエリーの結果をキャッシュしないようにする例です。

en: Score related parameters
ja: スコアー関連の引数

en: There is a score related parameter, ``adjuster``.
ja: スコアー関連のパラメーターは ``adjuster`` だけです。

en: Specifies one or more score adjust expressions. You need to use ``adjuster`` with ``query`` or ``filter``. ``adjuster`` doesn't work with not searched request.
ja: 1つ以上のスコアー調整式（score adjust expression）を指定します。 ``adjuster`` は ``query`` または ``filter`` と一緒に使います。検索しないリクエストでは ``adjuster`` は動きません。

en: You can increase score of specific records by ``adjuster``. You can use ``adjuster`` to set high score for important records.
ja: ``adjuster`` を使うと特定のレコードのスコアーを増やすことができます。重要なレコードに高いスコアーをつけるために ``adjuster`` を使えます。

en: For example, you can use ``adjuster`` to increase score of records that have ``groonga`` tag.
ja: 例えば、 ``groonga`` タグがついたレコードのスコアーを増やすために ``adjuster`` を使えます。

en: Here is the syntax::
ja: 以下が構文です::

en: Here is the ``SCORE_ADJUST_EXPRESSION`` syntax::
ja: 以下が ``SCORE_ADJUST_EXPRESSION`` の構文です::

en: Note the following:
ja: 以下のことに注意してください::

en: ``COLUMN`` must be indexed.
ja: ``COLUMN`` にはインデックスが張っていないといけません。

en: ``"KEYWORD"`` must be a string.
ja: ``"KEYWORD"`` は文字列でないといけません。

en: ``FACTOR`` must be a positive integer.
ja: ``FACTOR`` は正の整数でないといけません。

en: Here is a sample ``adjuster`` usage example that uses just one ``SCORE_ADJUST_EXPRESSION``:
ja: 以下は1つだけ ``SCORE_ADJUST_EXPRESSION`` を使った ``adjuster`` の使用例です。

en: The ``select`` command matches all records. Then it applies ``adjuster``. The adjuster increases score of records that have ``"groonga"`` in ``Entries.content`` column by 5. There is only one record that has ``"groonga"`` in ``Entries.content`` column.  So the record that its key is ``"Groonga"`` has score 6 (``= 1 + 5``).
ja: この ``select`` コマンドはすべてのレコードにマッチします。それから、 ``adjuster`` を適用します。このアジャスターは ``Entries.content`` カラムの中に ``"groonga"`` を含むレコードのスコアーを5増やします。 ``Entries.content`` カラムに ``"groonga"`` が含まれているレコードは1つだけです。 ``"Groonga"`` というキーのレコードです。このレコードのスコアーは6（ ``= 1 + 5`` ）になります。

en: You can omit ``FACTOR``. If you omit ``FACTOR``, it is treated as 1.
ja: ``FACTOR`` は省略できます。 ``FACTOR`` を省略すると、1を指定したとみなします。

en: Here is a sample ``adjuster`` usage example that omits ``FACTOR``:
ja: ``FACTOR`` を省略した ``adjuster`` の使用例です。

en: The ``adjuster`` in the ``select`` command doesn't have ``FACTOR``. So the factor is treated as 1. There is only one record that has ``"groonga"`` in ``Entries.content`` column. So the record that its key is ``"Groonga"`` has score 2 (``= 1 + 1``).
ja: この ``select`` コマンドの ``adjuster`` は ``FACTOR`` がありません。そのため、係数は1になります。 ``Entries.content`` カラムに ``"groonga"`` を含むレコードは1つだけです。キーが ``"Groonga"`` のレコードです。このレコードのスコアーは2（ ``= 1 + 1`` ）になります。

en: Here is a sample ``adjuster`` usage example that uses multiple ``SCORE_ADJUST_EXPRESSION``:
ja: 複数の ``SCORE_ADJUST_EXPRESSION`` を使った ``adjuster`` の使用例です。

en: The ``adjuster`` in the ``select`` command has two ``SCORE_ADJUST_EXPRESSION`` s. The final increased score is sum of scores of these ``SCORE_ADJUST_EXPRESSION`` s. All ``SCORE_ADJUST_EXPRESSION`` s in the ``select`` command are applied to a record that its key is ``"Groonga"``. So the final increased score of the record is sum of scores of all ``SCORE_ADJUST_EXPRESSION`` s.
ja: この ``select`` コマンドの ``adjuster`` には2つの ``SCORE_ADJUST_EXPRESSION`` があります。最終的なスコアーの増分はすこれらの ``SCORE_ADJUST_EXPRESSION`` のスコアーの合計になります。この ``select`` コマンドのすべての ``SCORE_ADJUST_EXPRESSION`` はキーが ``"Groonga"`` のレコードに適用されます。そのため、このレコードの最終的なスコアーの増分はすべての ``SCORE_ADJUST_EXPRESSION`` の合計になります。

en: The first ``SCORE_ADJUST_EXPRESSION`` is ``content @ "groonga" * 5``. It increases score by 5.
ja: 最初の ``SCORE_ADJUST_EXPRESSION`` は ``content @ "groonga" * 5`` です。これは、スコアーを5増やします。

en: The second ``SCORE_ADJUST_EXPRESSION`` is ``content @ "started" * 3``. It increases score by 3.
ja: 2番目の ``SCORE_ADJUST_EXPRESSION`` は ``content @ "started" * 3`` です。これはスコアーを3増やします。

en: The final increased score is 9 (``= 1 + 5 + 3``).
ja: 最終的なスコアーの増分は9（ ``= 1 + 5 + 3`` ）です。

en: A ``SCORE_ADJUST_EXPRESSION`` has a factor for ``"KEYWORD"``. This means that increased scores of all records that has ``"KEYWORD"`` are the same value. You can change increase score for each record that has the same ``"KEYWORD"``. It is useful to tune search score. See :ref:`weight-vector-column` for details.
ja: 1つの ``SCORE_ADJUST_EXPRESSION`` は ``"KEYWORD"`` に対して1つの係数を持ちます。これは、 ``"KEYWORD"`` を持つすべてのレコードでスコアーの増加分は同じということです。 ``"KEYWORD"`` を持つそれぞれのレコード毎にスコアーの増加分を変えることができます。これは検索スコアーをチューニングするときに便利です。詳細は :ref:`weight-vector-column` を参照してください。

en: Return value
ja: 戻り値

en: The command returns a response with the following format::
ja: このコマンドは以下のフォーマットのレスポンスを返します。::

en: If the command fails, error details are in ``HEADER``.
ja: このコマンドが失敗すると、 ``HEADER`` にエラーの詳細が含まれます。

en: See :doc:`/reference/command/output_format` for ``HEADER``.
ja: ``HEADER`` については :doc:`/reference/command/output_format` を参照してください。

en: There are zero or more ``DRILLDOWN_RESULT``. If no ``drilldown`` and ``drilldowns[${LABEL}].keys`` are specified, they are omitted like the following::
ja: 0個以上の ``DRILLDOWN_RESULT`` があります。もし、 ``drilldown`` も ``drilldowns[${LABEL}].keys`` も指定していない場合、次のように ``DRILLDOWN_RESULT`` は出力されません::

en: If ``drilldown`` has two or more keys like ``--drilldown "_key, column1, column2"``, multiple ``DRILLDOWN_RESULT`` exist::
ja: ``--drilldown "_key, column1, column2"`` というように ``drilldown`` に2つ以上のキーがある場合、複数の ``DRILLDOWN_RESULT`` が存在します::

en: If ``drilldowns[${LABEL}].keys`` is used, only one ``DRILLDOWN_RESULT`` exist::
ja: もし ``drilldowns[${LABEL}].keys`` を使っているなら、 ``DRILLDOWN_RESULT`` が1つだけ存在します::

en: ``DRILLDOWN_RESULT`` format is different between ``drilldown`` and ``drilldowns[${LABEL}].keys``. It's described later.
ja: ``DRILLDOWN_RESULT`` のフォーマットは ``drilldown`` と ``drilldowns[${LABEL}].keys`` で違います。これについては後述します。

en: ``SEARCH_RESULT`` is the following format::
ja: ``SEARCH_RESULT`` は以下のフォーマットです::

en: See :ref:`select-simple-usage` for concrete example of the format.
ja: このフォーマットの具体例は :ref:`select-simple-usage` を見てください。

en: ``N_HITS`` is the number of matched records before :ref:`select-limit` is applied.
ja: ``N_HITS`` は :ref:`select-limit` を適用する前のマッチしたレコード数です。

en: ``COLUMNS`` describes about output columns specified by :ref:`select-output-columns`. It uses the following format::
ja: ``COLUMNS`` は :ref:`select-output-columns` で指定した出力カラムの情報を表しています。これは次のフォーマットになっています::

en: ``COLUMNS`` includes one or more output column information. Each output column information includes the followings:
ja: ``COLUMNS`` は1つ以上の出力カラムの情報を含んでいます。各出力カラムの情報は次の情報を含んでいます。

en: Column name as string
ja: カラム名（文字列）

en: Column type as string or ``null``
ja: カラムの型（文字列または ``null`` ）

en: Column name is extracted from value specified as :ref:`select-output-columns`.
ja: カラム名は :ref:`select-output-columns` で指定された値から抽出しています。

en: Column type is Groonga's type name or ``null``. It doesn't describe whether the column value is vector or scalar. You need to determine it by whether real column value is array or not.
ja: カラムの方はGroongaでの型名または ``null`` です。カラムがベクターかスカラーかの情報は持っていません。実際のカラムの値が配列かどうかで判断する必要があります。

en: See :doc:`/reference/types` for type details.
ja: 型の詳細は :doc:`/reference/types` を見てください。

en: ``null`` is used when column value type isn't determined. For example, function call in :ref:`select-output-columns` such as ``--output_columns "snippet_html(content)"`` uses ``null``.
ja: ``null`` になるときはカラムの値の型を決められないときです。たとえば、 ``--output_columns "snippet_html(content)"`` というように :ref:`select-output-columns` の中で関数呼び出しを使ったときは ``null`` になります。

en: Here is an example of ``COLUMNS``::
ja: 以下は ``COLUMNS`` の使用例です::

en: ``RECORDS`` includes column values for each matched record. Included records are selected by :ref:`select-offset` and :ref:`select-limit`. It uses the following format::
ja: ``RECORDS`` はマッチした各レコードのカラムの値を含んでいます。 ``RECORDS`` に含まれるレコードは :ref:`select-offset` と :ref:`select-limit` で選択されたレコードです。 ``RECORDS`` は次のフォーマットです::

en: Here is an example ``RECORDS``::
ja: 以下は ``RECORDS`` の例です::

en: ``DRILLDOWN_RESULT`` format is different between ``drilldown`` and ``drilldowns[${LABEL}].keys``.
ja: ``DRILLDOWN_RESULT`` のフォーマットは ``drilldown`` と ``drilldowns[${LABEL}].keys`` で違います。

en: ``drilldown`` uses the same format as ``SEARCH_RESULT``::
ja: ``drilldown`` は ``SEARCH_RESULT`` と同じフォーマットです::

en: And ``drilldown`` generates one or more ``DRILLDOWN_RESULT`` when :ref:`select-drilldown` has one ore more keys.
ja: :ref:`select-drilldown` で1つ以上のキーを指定すると、 ``drilldown`` は1つ以上の ``DRILLDOWN_RESULT`` を出力します。

en: ``drilldowns[${LABEL}].keys`` uses the following format. Multiple ``drilldowns[${LABEL}].keys`` are mapped to one object (key-value pairs)::
ja: ``drilldowns[${LABEL}].keys`` は次のフォーマットを使います。複数の ``drilldowns[${LABEL}].keys`` は1つのオブジェクト（キーと値のペアの集合）になります::

en: Each ``drilldowns[${LABEL}].keys`` corresponds to the following::
ja: 各 ``drilldowns[${LABEL}].keys`` は次の部分に対応します::

en: The following value part is the same format as ``SEARCH_RESULT``::
ja: 以下の値の部分は ``SEARCH_RESULT`` と同じフォーマットです::

en: See also :ref:`select-drilldowns-label-output-format` for ``drilldowns[${LABEL}]`` style drilldown output format.
ja: ``drilldownss[${LABEL}]`` スタイルのドリルダウンの出力形式については :ref:`select-drilldowns-label-output-format` も見てください。

en: See also
ja: 参考
