1.2.1 - en to ja translation catalogue (35 entries)

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

en: Various data types
ja: いろいろなデータの保存

en: Groonga is a full text search engine but also serves as a column-oriented data store. Groonga supports various data types, such as numeric types, string types, date and time type, longitude and latitude types, etc. This tutorial shows a list of data types and explains how to use them.
ja: Groongaは全文検索エンジンを起源として独自のカラムストアを持つに至るわけですが、索引語や文書を保存するだけでなく、数値や文字列、日時や経緯度など、いろいろなデータを保存することができます。本チュートリアルでは、Groongaで保存できるデータの種類、および保存の方法を説明します。

en: Overview
ja: データの種類

en: The basic data types of Groonga are roughly divided into 5 groups --- boolean type, numeric types, string types, date/time type and longitude/latitude types. The numeric types are further divided according to whether integer or floating point number, signed or unsigned and the number of bits allocated to each integer. The string types are further divided according to the maximum length. The longitude/latitude types are further divided according to the geographic coordinate system. For more details, see :doc:`/reference/types`.
ja: Groongaにおいて利用できる基本型は、真偽値、数値、文字列、日時、経緯度の5種類に大別できます。基本型において、数値は整数・浮動小数点数の違い、符号の有無と割り当てるビット数によって細分化できるほか、文字列は長さの上限によって細分化できます。また、経緯度には測地系による分類があります。詳しくは :doc:`/reference/types` を参照してください。

en: In addition, Groonga supports reference types and vector types. Reference types are designed for accessing other tables. Vector types are designed for storing a variable number of values in one element.
ja: 拡張型としては、別テーブルを参照するための情報であるテーブル参照を保存することができます。また、基本型もしくはテーブル参照を複数まとめて保存できるように、ベクターカラムをサポートしています。

en: First, let's create a table for this tutorial.
ja: それでは、本チュートリアルで使用するテーブルを作成しておきましょう。

en: Boolean type
ja: 真偽値

en: The boolean type is used to store true or false. To create a boolean type column, specify Bool to the `type` parameter of :doc:`/reference/commands/column_create` command. The default value of the boolean type is false.
ja: ブール型は真偽値（true/false）を表現するための型です。ブール型のカラムを作成するには、 :doc:`/reference/commands/column_create` コマンドの `type` 引数に Bool を指定します。ブール型のデフォルト値はfalseです。

en: The following example creates a boolean type column and adds three records. Note that the third record has the default value because no value is specified.
ja: 以下の例では、ブール型のカラムを作成し、3つのレコードを追加します。3番目のレコードについては、値を省略しているため、デフォルト値が格納されます。

en: Numeric types
ja: 数値

en: The numeric types are divided into integer types and a floating point number type. The integer types are further divided into the signed integer types and unsigned integer types. In addition, you can choose the number of bits allocated to each integer. For more details, see :doc:`/reference/types`. The default value of the numeric types is 0.
ja: 数値型は、整数と浮動小数点数に分けることができます。整数は、符号付き整数と符号なし整数に分けることができるだけでなく、割り当てるビット数によっても分けることができます。割り当てるビット数を大きくすると、カラムのサイズは大きくなってしまいますが、表現できる整数の範囲を大きくすることができます。詳しくは :doc:`/reference/types` を参照してください。数値型のデフォルト値はいずれも0です。

en: The following example creates an Int8 column and a Float column, and then updates existing records. The :doc:`/reference/commands/load` command updates the weight column as expected. On the other hand, the price column values are different from the specified values because 15.9 is not an integer and 200 is too large. 15.9 is converted to 15 by removing the fractional part. 200 causes an overflow and the result becomes -56. Note that the result of an overflow/underflow is undefined.
ja: 以下の例では、Int8型のカラムとFloat型のカラムを作成し、既存のレコードを更新します。 :doc:`/reference/commands/load` コマンドはweightカラムの値を期待したとおりに更新しています。一方、priceカラムに指定した小数については、小数点以下を切り捨てた値が格納されています。また、表現できる範囲を超える値を格納しようとした2番目のレコードについては、指定した値とは異なる値が格納されています。このように、表現できる範囲を超える値を指定すると、操作後の値は未定義になるので注意してください。

en: String types
ja: 文字列

en: The string types are divided according to the maximum length. For more details, see :doc:`/reference/types`. The default value is the zero-length string.
ja: 文字列型は、長さの上限によって分けることができます。詳しくは :doc:`/reference/types` を参照してください。文字列型のデフォルト値は長さ0の文字列です。

en: The following example creates a ``ShortText`` column and updates existing records. The third record (``"Block"`` key record) has the default value (zero-length string) because it's not updated.
ja: 以下の例では、 ``ShortText`` 型のカラムを作成し、既存のレコードを更新します。3つ目のレコード（キーが ``"Block"`` のレコード）は更新していないのでデフォルト値（長さが0の文字列）になります。

en: Date and time type
ja: 日時

en: The date and time type of Groonga is Time. Actually, a Time column stores a date and time as the number of microseconds since the Epoch, 1970-01-01 00:00:00. A Time value can represent a date and time before the Epoch because the actual data type is a signed integer. Note that :doc:`/reference/commands/load` and :doc:`/reference/commands/select` commands use a decimal number to represent a data and time in seconds. The default value is 0.0, which means the Epoch.
ja: 日時を表現するための型はTimeです。内部では1970年1月1日0時0分0秒を基準とする経過時間をマイクロ秒単位で表現します。符号付きの整数を用いるため、1970年以前の日時も表現することができます。内部表現はマイクロ秒単位の整数ですが、 :doc:`/reference/commands/load` コマンドおよび :doc:`/reference/commands/select` コマンドでは、経過秒数による指定・表示となります。デフォルト値は1970年1月1日0時0分0秒のことを表す0.0です。

en: Groonga internally holds the value of Epoch as pair of integer. The first integer represents the value of seconds, on the other hand, the second integer represents the value of micro seconds. So, Groonga shows the value of Epoch as floating point. Integral part means the value of seconds, fraction part means the value of micro seconds.
ja: Groonga内部では経過秒数を整数のペアで保持しています。最初の整数で秒を表現し、もう一方でマイクロ秒を表現します。それゆえGroongaでは小数で経過秒数を表示します。整数部が秒数で、小数部はマイクロ秒の値です。

en: The following example creates a ``Time`` column and updates existing records. The first record (``"Monkey"`` key record) has the default value (``0.0``) because it's not updated.
ja: 以下の例では、 ``Time`` 型のカラムを作成し、既存のレコードを更新します。1つ目のレコード（キーが ``"Monkey"`` のレコード）は更新していないのでデフォルト値（ ``0.0`` ）になります。

en: Longitude and latitude types
ja: 経緯度

en: The longitude and latitude types are divided according to the geographic coordinate system. For more details, see :doc:`/reference/types`. To represent a longitude and latitude, Groonga uses a string formatted as follows:
ja: 経緯度を表現するための型は、測地系によって分けることができます。詳しくは :doc:`/reference/types` を参照してください。経緯度の指定・表示には、以下に示す形式の文字列を使います。

en: "longitude x latitude" in milliseconds (e.g.: "128452975x503157902")
ja: "経度のミリ秒表記x緯度のミリ秒表記" （例: "128452975x503157902"）

en: "longitude x latitude" in degrees (e.g.: "35.6813819x139.7660839")
ja: "経度の度数表記x緯度の度数表記" （例: "35.6813819x139.7660839"）

en: A number with/without a decimal point represents a longitude or latitude in milliseconds/degrees respectively. Note that a combination of a number with a decimal point and a number without a decimal point (e.g. 35.1x139) must not be used. A comma (',') is also available as a delimiter. The default value is "0x0".
ja: 小数点を含んでいなければミリ秒表記、小数点を含んでいれば度数表記として扱われます。ミリ秒表記と度数表記を混ぜたときの動作は未定義なので注意してください。経度と緯度の区切りとしては、'x' のほかに ',' を使うことができます。経緯度のデフォルト値は "0x0" です。

en: The following example creates a ``WGS84GeoPoint`` column and updates existing records. The second record (``"Flower"`` key record) has the default value (``"0x0"``) because it's not updated.
ja: 以下の例では、世界測地系を用いる ``WGS84GeoPoint`` 型のカラムを作成し、既存のレコードを更新します。2つ目のレコード（キーが ``"Flower"`` のレコード）は更新していないのでデフォルト値（ ``"0x0"`` ）になります。

en: Reference types
ja: テーブル参照

en: Groonga supports a reference column, which stores references to records in its associated table. In practice, a reference column stores the IDs of the referred records in the associated table and enables access to those records.
ja: Groongaでは、テーブル参照のカラム、すなわち関連付けたテーブルを参照するカラムを作成できます。より正確には、カラム作成時に参照先となるテーブルとの関連付けをおこない、参照先テーブルにおけるレコードIDを格納しておくことにより、参照先のレコードにアクセスできるようにします。

en: You can specify a column in the associated table to the ``output_columns`` parameter of a :doc:`/reference/commands/select` command. The format is ``Src.Dest`` where Src is the name of the reference column and Dest is the name of the target column. If only the reference column is specified, it is handled as ``Src._key``. Note that if a reference does not point to a valid record, a :doc:`/reference/commands/select` command outputs the default value of the target column.
ja: テーブル参照のカラムがあるときは、 :doc:`/reference/commands/select` コマンドの ``output_columns`` 引数に ``参照元カラム.参照先カラム`` と指定することにより、参照先カラムの値を取り出すことができます。参照元カラムのみを指定したときは、 ``参照元カラム名._key`` と同様の扱いとなり、参照先レコードの主キーが取り出されます。テーブル参照が有効なレコードを指していないときは、 :doc:`/reference/commands/select` コマンドは参照先カラムのデフォルト値を取り出すようになっています。

en: The following example adds a reference column to the ``Site`` table that was created in :ref:`tutorial-introduction-create-table`. The new column, named ``link``, is designed for storing links among records in the ``Site`` table.
ja: ここでは、 :ref:`tutorial-introduction-create-table` で作成した ``Site`` テーブルに参照カラムを作成します。作成する参照カラムは ``link`` という名前にします。このカラムには ``Site`` テーブルのレコード間でのリンク関係を保存します。

en: The `type` parameter of the :doc:`/reference/commands/column_create` command specifies the table to be associated with the reference column. In this example, the reference column is associated with the own table. Then, the :doc:`/reference/commands/load` command registers a link from "http://example.org" to "http://example.net". Note that a reference column requires the primary key, not the ID, of the record to be referred to. After that, the link is confirmed by the :doc:`/reference/commands/select` command. In this case, the primary key and the title of the referred record are output because link._key and link.title are specified to the `output_columns` parameter.
ja: テーブル参照のカラムを作成するときは、 :doc:`/reference/commands/column_create` コマンドの `type` 引数に参照先テーブルを指定します。この例では、同じテーブルに含まれる別のレコードを参照させたいので、Siteを指定することになります。次に、 :doc:`/reference/commands/load` コマンドで "http://example.org/" から "http://example.net/" へのリンクを登録しています。テーブル参照を作成するときは、IDではなく主キーを指定することに注意してください。最後に、 :doc:`/reference/commands/select` コマンドでリンクの内容を確認しています。この例では、 `output_columns` 引数に link._key と link.title を指定しているので、参照先の主キーとタイトルが表示されています。

en: Vector types
ja: ベクターカラム

en: Groonga supports a vector column, in which each element can store a variable number of values. To create a vector column, specify the COLUMN_VECTOR flag to the `flags` parameter of a :doc:`/reference/commands/column_create` command. A vector column is useful to represent a many-to-many relationship.
ja: :doc:`/reference/commands/column_create` コマンドでカラムを作成するとき、 `flags` 引数にCOLUMN_VECTORフラグを指定すると、 `type` 引数に指定した型の配列を格納するカラムになります。このようなカラムのことを、ベクターカラムと呼びます。ベクターカラムは、各レコードに複数の値を格納できるため、一対多の参照関係を表すのに便利です。

en: The previous example used a regular column, so each record could have at most one link. Obviously, the specification is insufficient because a site usually has more than one links. To solve this problem, the following example uses a vector column.
ja: さきほどテーブル参照の例として作成したカラムでは、各サイトに一つのリンクしか保存できませんでした。通常は一つのサイトから多くのサイトにリンクが張られているので、これでは残念な仕様になってしまいます。そこで、ベクターカラムを使って、複数のリンクを保存できるようにしてみましょう。

en: The only difference at the first step is the `flags` parameter that specifies to create a vector column. The `type` parameter of the :doc:`/reference/commands/column_create` command is the same as in the previous example. Then, the :doc:`/reference/commands/load` command registers three links from "http://example.org/" to "http://example.net/", "http://example.org/" and "http://example.com/". After that, the links are confirmed by the :doc:`/reference/commands/select` command. In this case, the primary keys and the titles are output as arrays because links._key and links.title are specified to the `output_columns` parameter.
ja: 新たなカラムにはSiteテーブルに対する参照の配列を格納するので、 `type` 引数にSiteを指定するとともに、 `flags` 引数にCOLUMN_VECTORフラグを指定しています。 :doc:`/reference/commands/column_create` コマンドの `type` パラメーターは前の例と同じです。次に、 :doc:`/reference/commands/load` コマンドによる更新では、 "http://example.org/" から "http://example.net/" へのリンクに加えて、 "http://example.org/" と "http://example.com/" へのリンクも登録しています。そして、最後に :doc:`/reference/commands/select` コマンドでリンクの内容を確認しています。この例では、 `output_columns` 引数に links._key と links.title を指定しているので、参照先の主キーとタイトルをそれぞれ配列にしたものが表示されています。
