[Groonga-commit] groonga/groonga at 0d05547 [master] doc logical_range_filter: add dynamic column related documdents

Back to archive index

Kouhei Sutou null+****@clear*****
Mon Nov 6 17:01:11 JST 2017


Kouhei Sutou	2017-11-06 17:01:11 +0900 (Mon, 06 Nov 2017)

  New Revision: 0d05547f0e693f9e18698f61d6d53edea809f86b
  https://github.com/groonga/groonga/commit/0d05547f0e693f9e18698f61d6d53edea809f86b

  Message:
    doc logical_range_filter: add dynamic column related documdents

  Added files:
    doc/source/example/reference/commands/logical_range_filter/cache_no.log
    doc/source/example/reference/commands/logical_range_filter/columns_name_flags.log
    doc/source/example/reference/commands/logical_range_filter/columns_name_stage.log
    doc/source/example/reference/commands/logical_range_filter/columns_name_type.log
    doc/source/example/reference/commands/logical_range_filter/columns_name_value.log
    doc/source/example/reference/commands/logical_range_filter/columns_name_window_group_keys.log
    doc/source/example/reference/commands/logical_range_filter/columns_name_window_sort_keys.log
    doc/source/example/reference/commands/logical_range_filter/usage_plugin_register.log
    doc/source/example/reference/commands/logical_range_filter/usage_setup.log
  Modified files:
    doc/locale/ja/LC_MESSAGES/reference.po
    doc/source/reference/commands/logical_range_filter.rst
    doc/source/reference/commands/logical_select.rst

  Modified: doc/locale/ja/LC_MESSAGES/reference.po (+235 -205)
===================================================================
--- doc/locale/ja/LC_MESSAGES/reference.po    2017-11-06 16:25:46 +0900 (79af47a22)
+++ doc/locale/ja/LC_MESSAGES/reference.po    2017-11-06 17:01:11 +0900 (28aa8b25b)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 1.2.1\n"
 "Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2017-11-06 16:24+0900\n"
+"PO-Revision-Date: 2017-11-06 16:57+0900\n"
 "Last-Translator: Masafumi Yokoyama <yokoyama �� clear-code.com>\n"
 "Language-Team: Japanese\n"
 "Language: ja\n"
@@ -7293,23 +7293,37 @@ msgstr ""
 msgid ""
 "``logical_range_filter`` is similar to :doc:`logical_select`. Both of them "
 "searches records from multiples tables and outputs them. "
-"``logical_range_filter`` stops searching when requested records are found. :"
-"doc:`logical_select` searches all records and outputs only needed records."
+"``logical_range_filter`` stops searching when the number of matched records "
+"is requested the number of records. :doc:`logical_select` searches all "
+"records and outputs only needed records."
 msgstr ""
+"``logical_range_filter`` は :doc:`logical_select` に似ています。どちらも複数"
+"のテーブルからレコードを検索し、見つかったレコードを出力します。 "
+"``logical_range_filter`` は要求されたレコード数分のレコードが見つかったらそこ"
+"で検索を終了します。 :doc:`logical_select` はすべてのレコードを検索し、必要な"
+"レコードだけ出力します。"
 
 msgid "``logical_range_filter`` has performance merit but some restrictions."
 msgstr ""
+"``logical_range_filter`` の方が性能面で有利ですがいくつか制約があります。"
 
 msgid ""
 "If many records are matched and requested records are small, "
 "``logical_range_filter`` will be faster than :doc:`logical_select`."
 msgstr ""
+"大量のレコードがマッチし、要求されているレコード数が小さい場合、 "
+"``logical_range_filter`` の方が :doc:`logical_select` よりも速いです。"
 
 msgid ""
 "``logical_range_filter`` doesn't support drilldown because drilldown "
 "requires all matched records. ``logical_range_filter`` may not find all "
 "matched records. So ``logical_range_filter`` doesn't support drilldown."
 msgstr ""
+"``logical_range_filter`` はドリルダウンをサポートしていません。なぜなら、ドリ"
+"ルダウンをするためにはマッチしたレコードがすべて必要だからです。 "
+"``logical_range_filter`` はマッチするレコードをすべて検索しないかもしれませ"
+"ん。そのため、 ``logical_range_filter`` はドリルダウンをサポートしていませ"
+"ん。"
 
 msgid ""
 "You need to :doc:`plugin_register` ``sharding`` plugin because this command "
@@ -7412,12 +7426,58 @@ msgstr ""
 "このコマンドは ``sharding`` プラグインに含まれているので ``sharding`` プラグ"
 "インを登録する必要があります。"
 
-msgid "TODO: Add examples"
+msgid ""
+"There are two tables, ``Entries_20150708`` and ``Entries_20150709``, for "
+"blog entries."
 msgstr ""
+"ブログエントリー用に ``Entries_20150708`` と ``Entries_20150709`` の2つのテー"
+"ブルがあります。"
+
+msgid ""
+"You need to use ``${LOGICAL_TABLE_NAME}_${YYYYMMDD}`` naming rule for table "
+"names. In this example, ``LOGICAL_TABLE_NAME`` is ``Entries`` and "
+"``YYYYMMDD`` is ``20150708`` or ``20150709``."
+msgstr ""
+"テーブル名には ``${論理テーブル名}_${YYYYMMDD}`` という命名規則を使う必要があ"
+"ります。この例では、 ``論理テーブル名`` は ``Entries`` で ``YYYYMMDD`` は "
+"``20150708`` または ``20150709`` です。"
+
+msgid ""
+"An entry has title, created time, content, the number of likes for the entry "
+"and tag. Title is key of ``Entries_YYYYMMDD``. Created time is value of "
+"``Entries_YYYYMMDD.created_at`` column. Content is value of "
+"``Entries_YYYYMMDD.content`` column. The number of likes is value of "
+"``Entries_YYYYMMDD.n_likes`` column. Tag is value of ``Entries_YYYYMMDD."
+"tag`` column."
+msgstr ""
+"各エントリはタイトルと作成日時と内容と「いいね!」数、タグを持っています。タ"
+"イトルは ``Entries_YYYYMMDD`` のキーとします。作成日時は ``Entries_YYYYMMDD."
+"created_at`` カラムの値とします。内容は ``Entries_YYYYMMDD.content`` カラムの"
+"値とします。「いいね!」数は ``Entries_YYYYMMDD.n_likes`` カラムの値としま"
+"す。タグは ``Entries_YYYYMMDD.tag`` カラムの値とします。"
+
+msgid ""
+"``Entries_YYYYMMDD._key`` column and ``Entries_YYYYMMDD.content`` column are "
+"indexed using ``TokenBigram`` tokenizer. So both ``Entries_YYYYMMDD._key`` "
+"and ``Entries_YYYYMMDD.content`` are fulltext search ready."
+msgstr ""
+"``Entries_YYYYMMDD._key`` カラムと ``Entries_YYYYMMDD.content`` カラムには "
+"``TokenBigram`` トークナイザーを使ったインデックスを作成します。そのため、 "
+"``Entries_YYYYMMDD._key`` と ``Entries_YYYYMMDD.content`` は両方とも全文検索"
+"できます。"
+
+msgid "OK. The schema and data for examples are ready."
+msgstr "これで例を示すためのスキーマとデータの準備ができました。"
+
+msgid "Simple usage"
+msgstr "簡単な使い方"
 
 msgid "This section describes parameters of ``logical_range_filter``."
 msgstr "このセクションでは ``logical_range_filter`` の引数について説明します。"
 
+msgid "TODO: Add examples"
+msgstr ""
+
 msgid "``order``"
 msgstr ""
 
@@ -7431,6 +7491,177 @@ msgstr ""
 "range_indexを使うかどうかを指定します。ただし、この引数はテスト用なので、本番"
 "で使うべきではありません。"
 
+msgid "Dynamic column related parameters"
+msgstr "動的カラム関連の引数"
+
+msgid ""
+"All dynamic column related parameters in :doc:`select` are supported. See :"
+"ref:`select-dynamic-column-related-parameters` for details."
+msgstr ""
+":doc:`select` のすべての動的カラム関連パラメーターをサポートしています。詳細"
+"は :ref:`select-dynamic-column-related-parameters` を見てください。"
+
+msgid ""
+"If you use one or more dynamic columns, \"stop searching when enough records "
+"are matched in a table\" feature is disabled. ``logical_range_filter`` "
+"searches all matched records in a table even when requested the number of "
+"matched records is small. It's for supporting window function. Running "
+"window function requires all records in a table."
+msgstr ""
+"動的カラムを1つ以上使うと、「十分なレコードがマッチしたらそのテーブルの検索を"
+"切り上げる」機能が無効になります。(「十分なレコードがマッチしたら残りのテー"
+"ブルの検索を切り上げる」機能は有効です。) ``logical_range_filter`` は要求さ"
+"れているマッチレコード数が小さくても各テーブルですべてのマッチするレコードを"
+"検索します。これはウィンドウ関数をサポートするためです。ウィンドウ関数を実行"
+"するには同一テーブル内のすべての対象レコードが必要です。"
+
+msgid "``columns[${NAME}].stage``"
+msgstr ""
+
+msgid ""
+"Corresponds to :ref:`select-columns-name-stage` in :doc:`select`. See :ref:"
+"`select-columns-name-stage` for details."
+msgstr ""
+":doc:`select` の :ref:`select-columns-name-stage` に対応しています。詳細は :"
+"ref:`select-columns-name-stage` を見てください。"
+
+msgid "This is a required parameter."
+msgstr "必須の引数です。"
+
+msgid ""
+"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``:"
+msgstr ""
+"以下は ``initial`` ステージで ``is_popular`` カラムを作る例です。作成した "
+"``is_popular`` カラムは ``filter`` や ``output_columns`` を含むすべてのパラ"
+"メーターで使えます。"
+
+msgid "``columns[${NAME}].flags``"
+msgstr ""
+
+msgid ""
+"Corresponds to :ref:`select-columns-name-flags` in :doc:`select`. See :ref:"
+"`select-columns-name-flags` for details."
+msgstr ""
+":doc:`select` の :ref:`select-columns-name-flags` に対応しています。詳細は :"
+"ref:`select-columns-name-flags` を見てください。"
+
+msgid "The default value is ``COLUMN_SCALAR``."
+msgstr "デフォルト値は ``COLUMN_SCALAR`` です。"
+
+msgid ""
+"Here is an example that creates a vector column by ``COLUMN_VECTOR`` flags. "
+"``plugin_register functions/vector`` is for using :doc:`/reference/functions/"
+"vector_new` function:"
+msgstr ""
+"以下は ``COLUMN_VECTOR`` フラグを指定してベクターカラムを作る例です。 "
+"``plugin_register functions/vector`` は :doc:`/reference/functions/"
+"vector_new` 関数を使うために実行しています。:"
+
+msgid "``columns[${NAME}].type``"
+msgstr ""
+
+msgid ""
+"Corresponds to :ref:`select-columns-name-type` in :doc:`select`. See :ref:"
+"`select-columns-name-type` for details."
+msgstr ""
+":doc:`select` の :ref:`select-columns-name-type` に対応しています。詳細は :"
+"ref:`select-columns-name-type` を見てください。"
+
+msgid ""
+"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``:"
+msgstr ""
+"以下は ``ShortText`` 型のカラムを作る例です。保存された値は自動的に "
+"``ShortText`` にキャストされます。この例では数値が ``ShortText`` にキャストさ"
+"れています。"
+
+msgid "``columns[${NAME}].value``"
+msgstr ""
+
+msgid ""
+"Corresponds to :ref:`select-columns-name-value` in :doc:`select`. See :ref:"
+"`select-columns-name-value` for details."
+msgstr ""
+":doc:`select` の :ref:`select-columns-name-value` に対応しています。詳細は :"
+"ref:`select-columns-name-value` を見てください。"
+
+msgid ""
+"You need to specify :doc:`/reference/window_function` as ``value`` value and "
+"other window function related parameters when you use window function. See :"
+"ref:`logical-range-filter-window-function-related-parameters` for details."
+msgstr ""
+"ウィンドウ関数を使う場合は、 ``value`` の値に :doc:`/reference/"
+"window_function` を指定し、さらに他のウィンドウ関数関連のパラメーターも指定す"
+"る必要があります。詳細は :ref:`logical-range-filter-window-function-related-"
+"parameters` を見てください。"
+
+msgid ""
+"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:"
+msgstr ""
+"以下は内容の文字数を格納するための動的カラムを1つ作る例です。この例では文字数"
+"を数えるために ``functions/string`` プラグイン内の :doc:`/reference/"
+"functions/string_length` 関数を使っています。 ``functions/string`` プラグイン"
+"を登録するために :doc:`plugin_register` を使っています。"
+
+msgid "Window function related parameters"
+msgstr "ウィンドウ関数関連の引数"
+
+msgid ""
+"All window function related parameters in :doc:`select` are supported. See :"
+"ref:`select-window-function-related-parameters` for details."
+msgstr ""
+":doc:`select` のすべてのウィンドウ関数関連パラメーターをサポートしています。"
+"詳細は :ref:`select-window-function-related-parameters` を見てください。"
+
+msgid "Window function over multiple tables aren't supported yet."
+msgstr "複数のテーブルをまたがったウィンドウ関数はまだサポートしていません。"
+
+msgid "``columns[${NAME}].window.sort_keys``"
+msgstr ""
+
+msgid ""
+"Corresponds to :ref:`select-columns-name-window-sort-keys` in :doc:`select`. "
+"See :ref:`select-columns-name-window-sort-keys` for details."
+msgstr ""
+":doc:`select` の :ref:`select-columns-name-window-sort-keys` に対応していま"
+"す。詳細は :ref:`select-columns-name-window-sort-keys` を見てください。"
+
+msgid ""
+"You must specify :ref:`logical-range-filter-columns-name-window-sort-keys` "
+"or :ref:`logical-range-filter-columns-name-window-group-keys` to use window "
+"function."
+msgstr ""
+"ウィンドウ関数を使うには :ref:`logical-select-columns-name-window-sort-keys` "
+"または :ref:`logical-range-filter-columns-name-window-group-keys` を指定しな"
+"ければいけません。"
+
+msgid ""
+"Here is an example that computes cumulative sum per ``Entries.tag``. Each "
+"group is sorted by ``Entries._key``:"
+msgstr ""
+"以下は ``Entries.tag`` 毎に累積和を計算する例です。各グループ内のレコードは "
+"``Entries._key`` でソートします。"
+
+msgid "``columns[${NAME}].window.group_keys``"
+msgstr ""
+
+msgid ""
+"Corresponds to :ref:`select-columns-name-window-group-keys` in :doc:"
+"`select`. See :ref:`select-columns-name-window-group-keys` for details."
+msgstr ""
+":doc:`select` の :ref:`select-columns-name-window-group-keys` に対応していま"
+"す。詳細は :ref:`select-columns-name-window-group-keys` を見てください。"
+
+msgid "Here is an example that computes sum per ``Entries.tag``:"
+msgstr "以下は ``Entries.tag`` 毎に合計を計算する例です。"
+
 msgid "Cache related parameter"
 msgstr "キャッシュ関連の引数"
 
@@ -7629,52 +7860,6 @@ msgstr "``query_expander`` はまだサポートしていません。"
 msgid "``adjuster`` isn't supported yet."
 msgstr "``adjuster`` はまだサポートしていません。"
 
-msgid ""
-"There are two tables, ``Entries_20150708`` and ``Entries_20150709``, for "
-"blog entries."
-msgstr ""
-"ブログエントリー用に ``Entries_20150708`` と ``Entries_20150709`` の2つのテー"
-"ブルがあります。"
-
-msgid ""
-"You need to use ``${LOGICAL_TABLE_NAME}_${YYYYMMDD}`` naming rule for table "
-"names. In this example, ``LOGICAL_TABLE_NAME`` is ``Entries`` and "
-"``YYYYMMDD`` is ``20150708`` or ``20150709``."
-msgstr ""
-"テーブル名には ``${論理テーブル名}_${YYYYMMDD}`` という命名規則を使う必要があ"
-"ります。この例では、 ``論理テーブル名`` は ``Entries`` で ``YYYYMMDD`` は "
-"``20150708`` または ``20150709`` です。"
-
-msgid ""
-"An entry has title, created time, content, the number of likes for the entry "
-"and tag. Title is key of ``Entries_YYYYMMDD``. Created time is value of "
-"``Entries_YYYYMMDD.created_at`` column. Content is value of "
-"``Entries_YYYYMMDD.content`` column. The number of likes is value of "
-"``Entries_YYYYMMDD.n_likes`` column. Tag is value of ``Entries_YYYYMMDD."
-"tag`` column."
-msgstr ""
-"各エントリはタイトルと作成日時と内容と「いいね!」数、タグを持っています。タ"
-"イトルは ``Entries_YYYYMMDD`` のキーとします。作成日時は ``Entries_YYYYMMDD."
-"created_at`` カラムの値とします。内容は ``Entries_YYYYMMDD.content`` カラムの"
-"値とします。「いいね!」数は ``Entries_YYYYMMDD.n_likes`` カラムの値としま"
-"す。タグは ``Entries_YYYYMMDD.tag`` カラムの値とします。"
-
-msgid ""
-"``Entries_YYYYMMDD._key`` column and ``Entries_YYYYMMDD.content`` column are "
-"indexed using ``TokenBigram`` tokenizer. So both ``Entries_YYYYMMDD._key`` "
-"and ``Entries_YYYYMMDD.content`` are fulltext search ready."
-msgstr ""
-"``Entries_YYYYMMDD._key`` カラムと ``Entries_YYYYMMDD.content`` カラムには "
-"``TokenBigram`` トークナイザーを使ったインデックスを作成します。そのため、 "
-"``Entries_YYYYMMDD._key`` と ``Entries_YYYYMMDD.content`` は両方とも全文検索"
-"できます。"
-
-msgid "OK. The schema and data for examples are ready."
-msgstr "これで例を示すためのスキーマとデータの準備ができました。"
-
-msgid "Simple usage"
-msgstr "簡単な使い方"
-
 msgid "This section describes parameters of ``logical_select``."
 msgstr "このセクションでは ``logical_select`` の引数について説明します。"
 
@@ -7916,89 +8101,6 @@ msgstr ""
 ":doc:`select` の :ref:`select-limit` に対応しています。詳細は :ref:`select-"
 "limit` を見てください。"
 
-msgid "Dynamic column related parameters"
-msgstr "動的カラム関連の引数"
-
-msgid ""
-"All dynamic column related parameters in :doc:`select` are supported. See :"
-"ref:`select-dynamic-column-related-parameters` for details."
-msgstr ""
-":doc:`select` のすべての動的カラム関連パラメーターをサポートしています。詳細"
-"は :ref:`select-dynamic-column-related-parameters` を見てください。"
-
-msgid "``columns[${NAME}].stage``"
-msgstr ""
-
-msgid ""
-"Corresponds to :ref:`select-columns-name-stage` in :doc:`select`. See :ref:"
-"`select-columns-name-stage` for details."
-msgstr ""
-":doc:`select` の :ref:`select-columns-name-stage` に対応しています。詳細は :"
-"ref:`select-columns-name-stage` を見てください。"
-
-msgid "This is a required parameter."
-msgstr "必須の引数です。"
-
-msgid ""
-"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``:"
-msgstr ""
-"以下は ``initial`` ステージで ``is_popular`` カラムを作る例です。作成した "
-"``is_popular`` カラムは ``filter`` や ``output_columns`` を含むすべてのパラ"
-"メーターで使えます。"
-
-msgid "``columns[${NAME}].flags``"
-msgstr ""
-
-msgid ""
-"Corresponds to :ref:`select-columns-name-flags` in :doc:`select`. See :ref:"
-"`select-columns-name-flags` for details."
-msgstr ""
-":doc:`select` の :ref:`select-columns-name-flags` に対応しています。詳細は :"
-"ref:`select-columns-name-flags` を見てください。"
-
-msgid "The default value is ``COLUMN_SCALAR``."
-msgstr "デフォルト値は ``COLUMN_SCALAR`` です。"
-
-msgid ""
-"Here is an example that creates a vector column by ``COLUMN_VECTOR`` flags. "
-"``plugin_register functions/vector`` is for using :doc:`/reference/functions/"
-"vector_new` function:"
-msgstr ""
-"以下は ``COLUMN_VECTOR`` フラグを指定してベクターカラムを作る例です。 "
-"``plugin_register functions/vector`` は :doc:`/reference/functions/"
-"vector_new` 関数を使うために実行しています。:"
-
-msgid "``columns[${NAME}].type``"
-msgstr ""
-
-msgid ""
-"Corresponds to :ref:`select-columns-name-type` in :doc:`select`. See :ref:"
-"`select-columns-name-type` for details."
-msgstr ""
-":doc:`select` の :ref:`select-columns-name-type` に対応しています。詳細は :"
-"ref:`select-columns-name-type` を見てください。"
-
-msgid ""
-"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``:"
-msgstr ""
-"以下は ``ShortText`` 型のカラムを作る例です。保存された値は自動的に "
-"``ShortText`` にキャストされます。この例では数値が ``ShortText`` にキャストさ"
-"れています。"
-
-msgid "``columns[${NAME}].value``"
-msgstr ""
-
-msgid ""
-"Corresponds to :ref:`select-columns-name-value` in :doc:`select`. See :ref:"
-"`select-columns-name-value` for details."
-msgstr ""
-":doc:`select` の :ref:`select-columns-name-value` に対応しています。詳細は :"
-"ref:`select-columns-name-value` を見てください。"
-
 msgid ""
 "You need to specify :doc:`/reference/window_function` as ``value`` value and "
 "other window function related parameters when you use window function. See :"
@@ -8010,38 +8112,6 @@ msgstr ""
 "parameters` を見てください。"
 
 msgid ""
-"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:"
-msgstr ""
-"以下は内容の文字数を格納するための動的カラムを1つ作る例です。この例では文字数"
-"を数えるために ``functions/string`` プラグイン内の :doc:`/reference/"
-"functions/string_length` 関数を使っています。 ``functions/string`` プラグイン"
-"を登録するために :doc:`plugin_register` を使っています。"
-
-msgid "Window function related parameters"
-msgstr "ウィンドウ関数関連の引数"
-
-msgid ""
-"All window function related parameters in :doc:`select` are supported. See :"
-"ref:`select-window-function-related-parameters` for details."
-msgstr ""
-":doc:`select` のすべてのウィンドウ関数関連パラメーターをサポートしています。"
-"詳細は :ref:`select-window-function-related-parameters` を見てください。"
-
-msgid "``columns[${NAME}].window.sort_keys``"
-msgstr ""
-
-msgid ""
-"Corresponds to :ref:`select-columns-name-window-sort-keys` in :doc:`select`. "
-"See :ref:`select-columns-name-window-sort-keys` for details."
-msgstr ""
-":doc:`select` の :ref:`select-columns-name-window-sort-keys` に対応していま"
-"す。詳細は :ref:`select-columns-name-window-sort-keys` を見てください。"
-
-msgid ""
 "You must specify :ref:`logical-select-columns-name-window-sort-keys` or :ref:"
 "`logical-select-columns-name-window-group-keys` to use window function."
 msgstr ""
@@ -8049,26 +8119,6 @@ msgstr ""
 "または :ref:`logical-select-columns-name-window-group-keys` を指定しなければ"
 "いけません。"
 
-msgid ""
-"Here is an example that computes cumulative sum per ``Entries.tag``. Each "
-"group is sorted by ``Entries._key``:"
-msgstr ""
-"以下は ``Entries.tag`` 毎に累積和を計算する例です。各グループ内のレコードは "
-"``Entries._key`` でソートします。"
-
-msgid "``columns[${NAME}].window.group_keys``"
-msgstr ""
-
-msgid ""
-"Corresponds to :ref:`select-columns-name-window-group-keys` in :doc:"
-"`select`. See :ref:`select-columns-name-window-group-keys` for details."
-msgstr ""
-":doc:`select` の :ref:`select-columns-name-window-group-keys` に対応していま"
-"す。詳細は :ref:`select-columns-name-window-group-keys` を見てください。"
-
-msgid "Here is an example that computes sum per ``Entries.tag``:"
-msgstr "以下は ``Entries.tag`` 毎に合計を計算する例です。"
-
 msgid "Drilldown related parameters"
 msgstr "ドリルダウン関連の引数"
 
@@ -27162,23 +27212,3 @@ msgstr ""
 
 msgid "``window_sum``"
 msgstr ""
-
-#~ msgid "There are two kind of index columns which you can specify."
-#~ msgstr "2つの種類のインデックスカラムを指定することができます。"
-
-#~ msgid ""
-#~ "Let's learn about ``logical_select`` usage with examples. This section "
-#~ "shows many popular usages."
-#~ msgstr ""
-#~ "例を使いながら ``logical_select`` の使い方を学びましょう。このセクションで"
-#~ "はよく使われる使い方を紹介します。"
-
-#~ msgid "``cache`` isn't supported yet."
-#~ msgstr "``cache`` はまだサポートしていません。"
-
-#~ msgid ""
-#~ "Register ``sharding`` plugin to use ``logical_range_filter`` command in "
-#~ "advance."
-#~ msgstr ""
-#~ "``logical_range_filter`` コマンドを使うには事前に ``sharding`` プラグイン"
-#~ "を登録します。"

  Added: doc/source/example/reference/commands/logical_range_filter/cache_no.log (+72 -0) 100644
===================================================================
--- /dev/null
+++ doc/source/example/reference/commands/logical_range_filter/cache_no.log    2017-11-06 17:01:11 +0900 (223e7e943)
@@ -0,0 +1,72 @@
+Execution example::
+
+  logical_range_filter \
+    --logical_table Entries \
+    --shard_key created_at \
+    --cache no
+  # [
+  #   [
+  #     0, 
+  #     1337566253.89858, 
+  #     0.000355720520019531
+  #   ], 
+  #   [
+  #     [
+  #       [
+  #         "_key", 
+  #         "ShortText"
+  #       ], 
+  #       [
+  #         "content", 
+  #         "Text"
+  #       ], 
+  #       [
+  #         "created_at", 
+  #         "Time"
+  #       ], 
+  #       [
+  #         "n_likes", 
+  #         "UInt32"
+  #       ], 
+  #       [
+  #         "tag", 
+  #         "ShortText"
+  #       ]
+  #     ], 
+  #     [
+  #       "The first post!", 
+  #       "Welcome! This is my first post!", 
+  #       1436281200.0, 
+  #       5, 
+  #       "Hello"
+  #     ], 
+  #     [
+  #       "Groonga", 
+  #       "I started to use Groonga. It's very fast!", 
+  #       1436284800.0, 
+  #       10, 
+  #       "Groonga"
+  #     ], 
+  #     [
+  #       "Mroonga", 
+  #       "I also started to use Mroonga. It's also very fast! Really fast!", 
+  #       1436288400.0, 
+  #       15, 
+  #       "Groonga"
+  #     ], 
+  #     [
+  #       "Good-bye Senna", 
+  #       "I migrated all Senna system!", 
+  #       1436367600.0, 
+  #       3, 
+  #       "Senna"
+  #     ], 
+  #     [
+  #       "Good-bye Tritonn", 
+  #       "I also migrated all Tritonn system!", 
+  #       1436371200.0, 
+  #       3, 
+  #       "Senna"
+  #     ]
+  #   ]
+  # ]

  Added: doc/source/example/reference/commands/logical_range_filter/columns_name_flags.log (+71 -0) 100644
===================================================================
--- /dev/null
+++ doc/source/example/reference/commands/logical_range_filter/columns_name_flags.log    2017-11-06 17:01:11 +0900 (6e2d0617d)
@@ -0,0 +1,71 @@
+Execution example::
+
+  plugin_register functions/vector
+  # [[0, 1337566253.89858, 0.000355720520019531], true]
+  logical_range_filter \
+    --logical_table Entries \
+    --shard_key created_at \
+    --columns[vector].stage initial \
+    --columns[vector].flags COLUMN_VECTOR \
+    --columns[vector].type UInt32 \
+    --columns[vector].value 'vector_new(1, 2, 3)' \
+    --output_columns _id,vector
+  # [
+  #   [
+  #     0, 
+  #     1337566253.89858, 
+  #     0.000355720520019531
+  #   ], 
+  #   [
+  #     [
+  #       [
+  #         "_id", 
+  #         "UInt32"
+  #       ], 
+  #       [
+  #         "vector", 
+  #         "UInt32"
+  #       ]
+  #     ], 
+  #     [
+  #       1, 
+  #       [
+  #         1, 
+  #         2, 
+  #         3
+  #       ]
+  #     ], 
+  #     [
+  #       2, 
+  #       [
+  #         1, 
+  #         2, 
+  #         3
+  #       ]
+  #     ], 
+  #     [
+  #       3, 
+  #       [
+  #         1, 
+  #         2, 
+  #         3
+  #       ]
+  #     ], 
+  #     [
+  #       1, 
+  #       [
+  #         1, 
+  #         2, 
+  #         3
+  #       ]
+  #     ], 
+  #     [
+  #       2, 
+  #       [
+  #         1, 
+  #         2, 
+  #         3
+  #       ]
+  #     ]
+  #   ]
+  # ]

  Added: doc/source/example/reference/commands/logical_range_filter/columns_name_stage.log (+43 -0) 100644
===================================================================
--- /dev/null
+++ doc/source/example/reference/commands/logical_range_filter/columns_name_stage.log    2017-11-06 17:01:11 +0900 (aca2db09c)
@@ -0,0 +1,43 @@
+Execution example::
+
+  logical_range_filter \
+    --logical_table Entries \
+    --shard_key created_at \
+    --columns[is_popular].stage initial \
+    --columns[is_popular].type Bool \
+    --columns[is_popular].value 'n_likes >= 10' \
+    --filter is_popular \
+    --output_columns _id,is_popular,n_likes
+  # [
+  #   [
+  #     0, 
+  #     1337566253.89858, 
+  #     0.000355720520019531
+  #   ], 
+  #   [
+  #     [
+  #       [
+  #         "_id", 
+  #         "UInt32"
+  #       ], 
+  #       [
+  #         "is_popular", 
+  #         "Bool"
+  #       ], 
+  #       [
+  #         "n_likes", 
+  #         "UInt32"
+  #       ]
+  #     ], 
+  #     [
+  #       2, 
+  #       true, 
+  #       10
+  #     ], 
+  #     [
+  #       3, 
+  #       true, 
+  #       15
+  #     ]
+  #   ]
+  # ]

  Added: doc/source/example/reference/commands/logical_range_filter/columns_name_type.log (+57 -0) 100644
===================================================================
--- /dev/null
+++ doc/source/example/reference/commands/logical_range_filter/columns_name_type.log    2017-11-06 17:01:11 +0900 (e0ac00fb5)
@@ -0,0 +1,57 @@
+Execution example::
+
+  logical_range_filter \
+    --logical_table Entries \
+    --shard_key created_at \
+    --columns[n_likes_string].stage initial \
+    --columns[n_likes_string].type ShortText \
+    --columns[n_likes_string].value n_likes \
+    --output_columns _id,n_likes,n_likes_string
+  # [
+  #   [
+  #     0, 
+  #     1337566253.89858, 
+  #     0.000355720520019531
+  #   ], 
+  #   [
+  #     [
+  #       [
+  #         "_id", 
+  #         "UInt32"
+  #       ], 
+  #       [
+  #         "n_likes", 
+  #         "UInt32"
+  #       ], 
+  #       [
+  #         "n_likes_string", 
+  #         "ShortText"
+  #       ]
+  #     ], 
+  #     [
+  #       1, 
+  #       5, 
+  #       "5"
+  #     ], 
+  #     [
+  #       2, 
+  #       10, 
+  #       "10"
+  #     ], 
+  #     [
+  #       3, 
+  #       15, 
+  #       "15"
+  #     ], 
+  #     [
+  #       1, 
+  #       3, 
+  #       "3"
+  #     ], 
+  #     [
+  #       2, 
+  #       3, 
+  #       "3"
+  #     ]
+  #   ]
+  # ]

  Added: doc/source/example/reference/commands/logical_range_filter/columns_name_value.log (+59 -0) 100644
===================================================================
--- /dev/null
+++ doc/source/example/reference/commands/logical_range_filter/columns_name_value.log    2017-11-06 17:01:11 +0900 (4856e6e9f)
@@ -0,0 +1,59 @@
+Execution example::
+
+  plugin_register functions/string
+  # [[0, 1337566253.89858, 0.000355720520019531], true]
+  logical_range_filter \
+    --logical_table Entries \
+    --shard_key created_at \
+    --columns[content_length].stage initial \
+    --columns[content_length].type UInt32 \
+    --columns[content_length].value 'string_length(content)' \
+    --output_columns _id,content,content_length
+  # [
+  #   [
+  #     0, 
+  #     1337566253.89858, 
+  #     0.000355720520019531
+  #   ], 
+  #   [
+  #     [
+  #       [
+  #         "_id", 
+  #         "UInt32"
+  #       ], 
+  #       [
+  #         "content", 
+  #         "Text"
+  #       ], 
+  #       [
+  #         "content_length", 
+  #         "UInt32"
+  #       ]
+  #     ], 
+  #     [
+  #       1, 
+  #       "Welcome! This is my first post!", 
+  #       31
+  #     ], 
+  #     [
+  #       2, 
+  #       "I started to use Groonga. It's very fast!", 
+  #       41
+  #     ], 
+  #     [
+  #       3, 
+  #       "I also started to use Mroonga. It's also very fast! Really fast!", 
+  #       64
+  #     ], 
+  #     [
+  #       1, 
+  #       "I migrated all Senna system!", 
+  #       28
+  #     ], 
+  #     [
+  #       2, 
+  #       "I also migrated all Tritonn system!", 
+  #       35
+  #     ]
+  #   ]
+  # ]

  Added: doc/source/example/reference/commands/logical_range_filter/columns_name_window_group_keys.log (+68 -0) 100644
===================================================================
--- /dev/null
+++ doc/source/example/reference/commands/logical_range_filter/columns_name_window_group_keys.log    2017-11-06 17:01:11 +0900 (629d046f3)
@@ -0,0 +1,68 @@
+Execution example::
+
+  logical_range_filter \
+    --logical_table Entries \
+    --shard_key created_at \
+    --columns[n_likes_sum_per_tag].stage initial \
+    --columns[n_likes_sum_per_tag].type UInt32 \
+    --columns[n_likes_sum_per_tag].value 'window_sum(n_likes)' \
+    --columns[n_likes_sum_per_tag].window.group_keys tag \
+    --sort_keys _key \
+    --output_columns tag,_key,n_likes,n_likes_sum_per_tag
+  # [
+  #   [
+  #     0, 
+  #     1337566253.89858, 
+  #     0.000355720520019531
+  #   ], 
+  #   [
+  #     [
+  #       [
+  #         "tag", 
+  #         "ShortText"
+  #       ], 
+  #       [
+  #         "_key", 
+  #         "ShortText"
+  #       ], 
+  #       [
+  #         "n_likes", 
+  #         "UInt32"
+  #       ], 
+  #       [
+  #         "n_likes_sum_per_tag", 
+  #         "UInt32"
+  #       ]
+  #     ], 
+  #     [
+  #       "Hello", 
+  #       "The first post!", 
+  #       5, 
+  #       5
+  #     ], 
+  #     [
+  #       "Groonga", 
+  #       "Groonga", 
+  #       10, 
+  #       25
+  #     ], 
+  #     [
+  #       "Groonga", 
+  #       "Mroonga", 
+  #       15, 
+  #       25
+  #     ], 
+  #     [
+  #       "Senna", 
+  #       "Good-bye Senna", 
+  #       3, 
+  #       6
+  #     ], 
+  #     [
+  #       "Senna", 
+  #       "Good-bye Tritonn", 
+  #       3, 
+  #       6
+  #     ]
+  #   ]
+  # ]

  Added: doc/source/example/reference/commands/logical_range_filter/columns_name_window_sort_keys.log (+69 -0) 100644
===================================================================
--- /dev/null
+++ doc/source/example/reference/commands/logical_range_filter/columns_name_window_sort_keys.log    2017-11-06 17:01:11 +0900 (855f458fe)
@@ -0,0 +1,69 @@
+Execution example::
+
+  logical_range_filter \
+    --logical_table Entries \
+    --shard_key created_at \
+    --columns[n_likes_cumulative_sum_per_tag].stage initial \
+    --columns[n_likes_cumulative_sum_per_tag].type UInt32 \
+    --columns[n_likes_cumulative_sum_per_tag].value 'window_sum(n_likes)' \
+    --columns[n_likes_cumulative_sum_per_tag].window.sort_keys _key \
+    --columns[n_likes_cumulative_sum_per_tag].window.group_keys tag \
+    --sort_keys _key \
+    --output_columns tag,_key,n_likes,n_likes_cumulative_sum_per_tag
+  # [
+  #   [
+  #     0, 
+  #     1337566253.89858, 
+  #     0.000355720520019531
+  #   ], 
+  #   [
+  #     [
+  #       [
+  #         "tag", 
+  #         "ShortText"
+  #       ], 
+  #       [
+  #         "_key", 
+  #         "ShortText"
+  #       ], 
+  #       [
+  #         "n_likes", 
+  #         "UInt32"
+  #       ], 
+  #       [
+  #         "n_likes_cumulative_sum_per_tag", 
+  #         "UInt32"
+  #       ]
+  #     ], 
+  #     [
+  #       "Hello", 
+  #       "The first post!", 
+  #       5, 
+  #       5
+  #     ], 
+  #     [
+  #       "Groonga", 
+  #       "Groonga", 
+  #       10, 
+  #       10
+  #     ], 
+  #     [
+  #       "Groonga", 
+  #       "Mroonga", 
+  #       15, 
+  #       25
+  #     ], 
+  #     [
+  #       "Senna", 
+  #       "Good-bye Senna", 
+  #       3, 
+  #       3
+  #     ], 
+  #     [
+  #       "Senna", 
+  #       "Good-bye Tritonn", 
+  #       3, 
+  #       6
+  #     ]
+  #   ]
+  # ]

  Added: doc/source/example/reference/commands/logical_range_filter/usage_plugin_register.log (+4 -0) 100644
===================================================================
--- /dev/null
+++ doc/source/example/reference/commands/logical_range_filter/usage_plugin_register.log    2017-11-06 17:01:11 +0900 (6315f95d1)
@@ -0,0 +1,4 @@
+Execution example::
+
+  plugin_register sharding
+  # [[0, 1337566253.89858, 0.000355720520019531], true]

  Added: doc/source/example/reference/commands/logical_range_filter/usage_setup.log (+71 -0) 100644
===================================================================
--- /dev/null
+++ doc/source/example/reference/commands/logical_range_filter/usage_setup.log    2017-11-06 17:01:11 +0900 (d72ab71be)
@@ -0,0 +1,71 @@
+Execution example::
+
+  table_create Entries_20150708 TABLE_HASH_KEY ShortText
+  # [[0, 1337566253.89858, 0.000355720520019531], true]
+  column_create Entries_20150708 created_at COLUMN_SCALAR Time
+  # [[0, 1337566253.89858, 0.000355720520019531], true]
+  column_create Entries_20150708 content COLUMN_SCALAR Text
+  # [[0, 1337566253.89858, 0.000355720520019531], true]
+  column_create Entries_20150708 n_likes COLUMN_SCALAR UInt32
+  # [[0, 1337566253.89858, 0.000355720520019531], true]
+  column_create Entries_20150708 tag COLUMN_SCALAR ShortText
+  # [[0, 1337566253.89858, 0.000355720520019531], true]
+  table_create Entries_20150709 TABLE_HASH_KEY ShortText
+  # [[0, 1337566253.89858, 0.000355720520019531], true]
+  column_create Entries_20150709 created_at COLUMN_SCALAR Time
+  # [[0, 1337566253.89858, 0.000355720520019531], true]
+  column_create Entries_20150709 content COLUMN_SCALAR Text
+  # [[0, 1337566253.89858, 0.000355720520019531], true]
+  column_create Entries_20150709 n_likes COLUMN_SCALAR UInt32
+  # [[0, 1337566253.89858, 0.000355720520019531], true]
+  column_create Entries_20150709 tag COLUMN_SCALAR ShortText
+  # [[0, 1337566253.89858, 0.000355720520019531], true]
+  table_create Terms TABLE_PAT_KEY ShortText \
+    --default_tokenizer TokenBigram \
+    --normalizer NormalizerAuto
+  # [[0, 1337566253.89858, 0.000355720520019531], true]
+  column_create Terms entries_key_index_20150708 \
+    COLUMN_INDEX|WITH_POSITION Entries_20150708 _key
+  # [[0, 1337566253.89858, 0.000355720520019531], true]
+  column_create Terms entries_content_index_20150708 \
+    COLUMN_INDEX|WITH_POSITION Entries_20150708 content
+  # [[0, 1337566253.89858, 0.000355720520019531], true]
+  column_create Terms entries_key_index_20150709 \
+    COLUMN_INDEX|WITH_POSITION Entries_20150709 _key
+  # [[0, 1337566253.89858, 0.000355720520019531], true]
+  column_create Terms entries_content_index_20150709 \
+    COLUMN_INDEX|WITH_POSITION Entries_20150709 content
+  # [[0, 1337566253.89858, 0.000355720520019531], true]
+  load --table Entries_20150708
+  [
+  {"_key":       "The first post!",
+   "created_at": "2015/07/08 00:00:00",
+   "content":    "Welcome! This is my first post!",
+   "n_likes":    5,
+   "tag":        "Hello"},
+  {"_key":       "Groonga",
+   "created_at": "2015/07/08 01:00:00",
+   "content":    "I started to use Groonga. It's very fast!",
+   "n_likes":    10,
+   "tag":        "Groonga"},
+  {"_key":       "Mroonga",
+   "created_at": "2015/07/08 02:00:00",
+   "content":    "I also started to use Mroonga. It's also very fast! Really fast!",
+   "n_likes":    15,
+   "tag":        "Groonga"}
+  ]
+  # [[0, 1337566253.89858, 0.000355720520019531], 3]
+  load --table Entries_20150709
+  [
+  {"_key":       "Good-bye Senna",
+   "created_at": "2015/07/09 00:00:00",
+   "content":    "I migrated all Senna system!",
+   "n_likes":    3,
+   "tag":        "Senna"},
+  {"_key":       "Good-bye Tritonn",
+   "created_at": "2015/07/09 01:00:00",
+   "content":    "I also migrated all Tritonn system!",
+   "n_likes":    3,
+   "tag":        "Senna"}
+  ]
+  # [[0, 1337566253.89858, 0.000355720520019531], 2]

  Modified: doc/source/reference/commands/logical_range_filter.rst (+366 -7)
===================================================================
--- doc/source/reference/commands/logical_range_filter.rst    2017-11-06 16:25:46 +0900 (208f1ff3d)
+++ doc/source/reference/commands/logical_range_filter.rst    2017-11-06 17:01:11 +0900 (8fd803055)
@@ -13,7 +13,29 @@ Summary
 
 .. versionadded:: 5.0.0
 
-TODO: Write summary
+``logical_range_filter`` is a sharding version of
+:doc:`range_filter`. ``logical_range_filter`` searches records from
+multiple tables and outputs them.
+
+``logical_range_filter`` is similar to :doc:`logical_select`. Both of
+them searches records from multiples tables and outputs
+them. ``logical_range_filter`` stops searching when the number of
+matched records is requested the number of
+records. :doc:`logical_select` searches all records and outputs only
+needed records.
+
+``logical_range_filter`` has performance merit but some restrictions.
+
+If many records are matched and requested records are small,
+``logical_range_filter`` will be faster than :doc:`logical_select`.
+
+``logical_range_filter`` doesn't support drilldown because drilldown
+requires all matched records. ``logical_range_filter`` may not find
+all matched records. So ``logical_range_filter`` doesn't support
+drilldown.
+
+You need to :doc:`plugin_register` ``sharding`` plugin because
+this command is included in ``sharding`` plugin.
 
 Syntax
 ------
@@ -44,15 +66,139 @@ Here are parameters that can be only used as named parameters:
 
   * ``cache=no``
 
+.. versionadded:: 7.0.9
+
+   This command has the following named parameters for dynamic columns:
+
+      * ``columns[${NAME}].stage=null``
+      * ``columns[${NAME}].flags=COLUMN_SCALAR``
+      * ``columns[${NAME}].type=null``
+      * ``columns[${NAME}].value=null``
+      * ``columns[${NAME}].window.sort_keys=null``
+      * ``columns[${NAME}].window.group_keys=null``
+
+       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`.
+
+       Parameters that have the same ``${NAME}`` are grouped.
+
+       For example, the following parameters specify one dynamic column:
+
+         * ``--columns[name].stage initial``
+         * ``--columns[name].type UInt32``
+         * ``--columns[name].value 29``
+
+       The following parameters specify two dynamic columns:
+
+         * ``--columns[name1].stage initial``
+         * ``--columns[name1].type UInt32``
+         * ``--columns[name1].value 29``
+         * ``--columns[name2].stage filtered``
+         * ``--columns[name2].type Float``
+         * ``--columns[name2].value '_score * 0.1'``
+
 Usage
 -----
 
-Register ``sharding`` plugin to use ``logical_range_filter`` command in advance.
+Let's learn about usage with examples. This section shows many popular
+usages.
+
+You need to register ``sharding`` plugin because this command is
+included in ``sharding`` plugin.
 
 .. groonga-command
+.. include:: ../../example/reference/commands/logical_range_filter/usage_plugin_register.log
 .. plugin_register sharding
 
-TODO: Add examples
+Here are a schema definition and sample data to show usage.
+
+.. groonga-command
+.. include:: ../../example/reference/commands/logical_range_filter/usage_setup.log
+.. table_create Entries_20150708 TABLE_HASH_KEY ShortText
+.. column_create Entries_20150708 created_at COLUMN_SCALAR Time
+.. column_create Entries_20150708 content COLUMN_SCALAR Text
+.. column_create Entries_20150708 n_likes COLUMN_SCALAR UInt32
+.. column_create Entries_20150708 tag COLUMN_SCALAR ShortText
+..
+.. table_create Entries_20150709 TABLE_HASH_KEY ShortText
+.. column_create Entries_20150709 created_at COLUMN_SCALAR Time
+.. column_create Entries_20150709 content COLUMN_SCALAR Text
+.. column_create Entries_20150709 n_likes COLUMN_SCALAR UInt32
+.. column_create Entries_20150709 tag COLUMN_SCALAR ShortText
+..
+.. table_create Terms TABLE_PAT_KEY ShortText \
+..   --default_tokenizer TokenBigram \
+..   --normalizer NormalizerAuto
+.. column_create Terms entries_key_index_20150708 \
+..   COLUMN_INDEX|WITH_POSITION Entries_20150708 _key
+.. column_create Terms entries_content_index_20150708 \
+..   COLUMN_INDEX|WITH_POSITION Entries_20150708 content
+.. column_create Terms entries_key_index_20150709 \
+..   COLUMN_INDEX|WITH_POSITION Entries_20150709 _key
+.. column_create Terms entries_content_index_20150709 \
+..   COLUMN_INDEX|WITH_POSITION Entries_20150709 content
+..
+.. load --table Entries_20150708
+.. [
+.. {"_key":       "The first post!",
+..  "created_at": "2015/07/08 00:00:00",
+..  "content":    "Welcome! This is my first post!",
+..  "n_likes":    5,
+..  "tag":        "Hello"},
+.. {"_key":       "Groonga",
+..  "created_at": "2015/07/08 01:00:00",
+..  "content":    "I started to use Groonga. It's very fast!",
+..  "n_likes":    10,
+..  "tag":        "Groonga"},
+.. {"_key":       "Mroonga",
+..  "created_at": "2015/07/08 02:00:00",
+..  "content":    "I also started to use Mroonga. It's also very fast! Really fast!",
+..  "n_likes":    15,
+..  "tag":        "Groonga"}
+.. ]
+..
+.. load --table Entries_20150709
+.. [
+.. {"_key":       "Good-bye Senna",
+..  "created_at": "2015/07/09 00:00:00",
+..  "content":    "I migrated all Senna system!",
+..  "n_likes":    3,
+..  "tag":        "Senna"},
+.. {"_key":       "Good-bye Tritonn",
+..  "created_at": "2015/07/09 01:00:00",
+..  "content":    "I also migrated all Tritonn system!",
+..  "n_likes":    3,
+..  "tag":        "Senna"}
+.. ]
+
+There are two tables, ``Entries_20150708`` and ``Entries_20150709``,
+for blog entries.
+
+.. note::
+
+   You need to use ``${LOGICAL_TABLE_NAME}_${YYYYMMDD}`` naming rule
+   for table names. In this example, ``LOGICAL_TABLE_NAME`` is
+   ``Entries`` and ``YYYYMMDD`` is ``20150708`` or ``20150709``.
+
+An entry has title, created time, content, the number of likes for the
+entry and tag. Title is key of ``Entries_YYYYMMDD``. Created time is
+value of ``Entries_YYYYMMDD.created_at`` column. Content is value of
+``Entries_YYYYMMDD.content`` column. The number of likes is value of
+``Entries_YYYYMMDD.n_likes`` column. Tag is value of
+``Entries_YYYYMMDD.tag`` column.
+
+``Entries_YYYYMMDD._key`` column and ``Entries_YYYYMMDD.content``
+column are indexed using ``TokenBigram`` tokenizer. So both
+``Entries_YYYYMMDD._key`` and ``Entries_YYYYMMDD.content`` are
+fulltext search ready.
+
+OK. The schema and data for examples are ready.
+
+Simple usage
+^^^^^^^^^^^^
+
+TODO
 
 Parameters
 ----------
@@ -147,6 +293,216 @@ Note that it's a parameter for test. It should not be used for production.
 
 TODO: Add examples
 
+.. _logical-range-filter-dynamic-column-related-parameters:
+
+Dynamic column related parameters
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. versionadded:: 7.0.9
+
+All dynamic column related parameters in :doc:`select` are
+supported. See :ref:`select-dynamic-column-related-parameters` for
+details.
+
+If you use one or more dynamic columns, "stop searching when enough
+records are matched in a table" feature is disabled. ("Stop searching
+against rest tables when enough records are matched" is still
+enabled.)  ``logical_range_filter`` searches all matched records in a
+table even when requested the number of matched records is small. It's
+for supporting window function. Running window function requires all
+target records in a table.
+
+.. _logical-range-filter-columns-name-stage:
+
+``columns[${NAME}].stage``
+""""""""""""""""""""""""""
+
+.. versionadded:: 7.0.9
+
+Corresponds to :ref:`select-columns-name-stage` in :doc:`select`. See
+:ref:`select-columns-name-stage` for details.
+
+This is a required parameter.
+
+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``:
+
+.. groonga-command
+.. include:: ../../example/reference/commands/logical_range_filter/columns_name_stage.log
+.. logical_range_filter \
+..   --logical_table Entries \
+..   --shard_key created_at \
+..   --columns[is_popular].stage initial \
+..   --columns[is_popular].type Bool \
+..   --columns[is_popular].value 'n_likes >= 10' \
+..   --filter is_popular \
+..   --output_columns _id,is_popular,n_likes
+
+.. _logical-range-filter-columns-name-flags:
+
+``columns[${NAME}].flags``
+""""""""""""""""""""""""""
+
+.. versionadded:: 7.0.9
+
+Corresponds to :ref:`select-columns-name-flags` in :doc:`select`. See
+:ref:`select-columns-name-flags` for details.
+
+The default value is ``COLUMN_SCALAR``.
+
+Here is an example that creates a vector column by ``COLUMN_VECTOR``
+flags. ``plugin_register functions/vector`` is for using
+:doc:`/reference/functions/vector_new` function:
+
+.. groonga-command
+.. include:: ../../example/reference/commands/logical_range_filter/columns_name_flags.log
+.. plugin_register functions/vector
+.. logical_range_filter \
+..   --logical_table Entries \
+..   --shard_key created_at \
+..   --columns[vector].stage initial \
+..   --columns[vector].flags COLUMN_VECTOR \
+..   --columns[vector].type UInt32 \
+..   --columns[vector].value 'vector_new(1, 2, 3)' \
+..   --output_columns _id,vector
+
+.. _logical-range-filter-columns-name-type:
+
+``columns[${NAME}].type``
+"""""""""""""""""""""""""
+
+.. versionadded:: 7.0.9
+
+Corresponds to :ref:`select-columns-name-type` in :doc:`select`. See
+:ref:`select-columns-name-type` for details.
+
+This is a required parameter.
+
+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``:
+
+.. groonga-command
+.. include:: ../../example/reference/commands/logical_range_filter/columns_name_type.log
+.. logical_range_filter \
+..   --logical_table Entries \
+..   --shard_key created_at \
+..   --columns[n_likes_string].stage initial \
+..   --columns[n_likes_string].type ShortText \
+..   --columns[n_likes_string].value n_likes \
+..   --output_columns _id,n_likes,n_likes_string
+
+.. _logical-range-filter-columns-name-value:
+
+``columns[${NAME}].value``
+""""""""""""""""""""""""""
+
+.. versionadded:: 7.0.9
+
+Corresponds to :ref:`select-columns-name-value` in :doc:`select`. See
+:ref:`select-columns-name-value` for details.
+
+You need to specify :doc:`/reference/window_function` as ``value``
+value and other window function related parameters when you use window
+function. See :ref:`logical-range-filter-window-function-related-parameters`
+for details.
+
+This is a required parameter.
+
+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:
+
+.. groonga-command
+.. include:: ../../example/reference/commands/logical_range_filter/columns_name_value.log
+.. plugin_register functions/string
+.. logical_range_filter \
+..   --logical_table Entries \
+..   --shard_key created_at \
+..   --columns[content_length].stage initial \
+..   --columns[content_length].type UInt32 \
+..   --columns[content_length].value 'string_length(content)' \
+..   --output_columns _id,content,content_length
+
+.. _logical-range-filter-window-function-related-parameters:
+
+Window function related parameters
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. versionadded:: 7.0.9
+
+All window function related parameters in :doc:`select` are
+supported. See :ref:`select-window-function-related-parameters` for
+details.
+
+.. note::
+
+   Window function over multiple tables aren't supported yet.
+
+.. _logical-range-filter-columns-name-window-sort-keys:
+
+``columns[${NAME}].window.sort_keys``
+"""""""""""""""""""""""""""""""""""""
+
+.. versionadded:: 7.0.9
+
+Corresponds to :ref:`select-columns-name-window-sort-keys` in
+:doc:`select`. See :ref:`select-columns-name-window-sort-keys` for
+details.
+
+You must specify :ref:`logical-range-filter-columns-name-window-sort-keys`
+or :ref:`logical-range-filter-columns-name-window-group-keys` to use window
+function.
+
+Here is an example that computes cumulative sum per
+``Entries.tag``. Each group is sorted by ``Entries._key``:
+
+.. groonga-command
+.. include:: ../../example/reference/commands/logical_range_filter/columns_name_window_sort_keys.log
+.. logical_range_filter \
+..   --logical_table Entries \
+..   --shard_key created_at \
+..   --columns[n_likes_cumulative_sum_per_tag].stage initial \
+..   --columns[n_likes_cumulative_sum_per_tag].type UInt32 \
+..   --columns[n_likes_cumulative_sum_per_tag].value 'window_sum(n_likes)' \
+..   --columns[n_likes_cumulative_sum_per_tag].window.sort_keys _key \
+..   --columns[n_likes_cumulative_sum_per_tag].window.group_keys tag \
+..   --sort_keys _key \
+..   --output_columns tag,_key,n_likes,n_likes_cumulative_sum_per_tag
+
+.. _logical-range-filter-columns-name-window-group-keys:
+
+``columns[${NAME}].window.group_keys``
+""""""""""""""""""""""""""""""""""""""
+
+.. versionadded:: 7.0.9
+
+Corresponds to :ref:`select-columns-name-window-group-keys` in
+:doc:`select`. See :ref:`select-columns-name-window-group-keys` for
+details.
+
+You must specify :ref:`logical-range-filter-columns-name-window-sort-keys`
+or :ref:`logical-range-filter-columns-name-window-group-keys` to use window
+function.
+
+Here is an example that computes sum per ``Entries.tag``:
+
+.. groonga-command
+.. include:: ../../example/reference/commands/logical_range_filter/columns_name_window_group_keys.log
+.. logical_range_filter \
+..   --logical_table Entries \
+..   --shard_key created_at \
+..   --columns[n_likes_sum_per_tag].stage initial \
+..   --columns[n_likes_sum_per_tag].type UInt32 \
+..   --columns[n_likes_sum_per_tag].value 'window_sum(n_likes)' \
+..   --columns[n_likes_sum_per_tag].window.group_keys tag \
+..   --sort_keys _key \
+..   --output_columns tag,_key,n_likes,n_likes_sum_per_tag
+
 Cache related parameter
 ^^^^^^^^^^^^^^^^^^^^^^^
 
@@ -177,11 +533,14 @@ Here are available values:
 
 TODO: Add examples
 
-.. Here is an example to disable caching the result of this query:
+Here is an example to disable caching the result of this query:
 
-.. .. groonga-command
-.. .. include:: ../../example/reference/commands/logical_range_filter/cache_no.log
-.. .. logical_range_filter ... --cache no
+.. groonga-command
+.. include:: ../../example/reference/commands/logical_range_filter/cache_no.log
+.. logical_range_filter \
+..   --logical_table Entries \
+..   --shard_key created_at \
+..   --cache no
 
 The default value is ``yes``.
 

  Modified: doc/source/reference/commands/logical_select.rst (+4 -0)
===================================================================
--- doc/source/reference/commands/logical_select.rst    2017-11-06 16:25:46 +0900 (c19085e4c)
+++ doc/source/reference/commands/logical_select.rst    2017-11-06 17:01:11 +0900 (1eaf447ed)
@@ -756,6 +756,10 @@ All window function related parameters in :doc:`select` are
 supported. See :ref:`select-window-function-related-parameters` for
 details.
 
+.. note::
+
+   Window function over multiple tables aren't supported yet.
+
 .. _logical-select-columns-name-window-sort-keys:
 
 ``columns[${NAME}].window.sort_keys``
-------------- next part --------------
HTML����������������������������...
URL: https://lists.osdn.me/mailman/archives/groonga-commit/attachments/20171106/81c45c8b/attachment-0001.htm 



More information about the Groonga-commit mailing list
Back to archive index