.. highlightlang:: none

.. _table_create:

table_create
============

名前
----

table_create - テーブルの追加

書式
----
::

 table_create name [flags [key_type [value_type [default_tokenizer]]]]

説明
----

groonga組込コマンドの一つであるtable_createについて説明します。組込コマンドは、groonga実行ファイルの引数、標準入力、またはソケット経由でgroongaサーバにリクエストを送信することによって実行します。

table_createコマンドは、使用しているデータベースに対してテーブルを追加します。groongaには名前付きテーブルと名前なしテーブル、永続テーブルと一時テーブルがありますが、table_createコマンドでは、名前付きの永続テーブルのみが作成できます。テーブルはレコードの集合であり、全てのレコードは一意なIDを持ちます。IDはレコードを追加した順序に従って自動的に付与されます。

テーブルにカラムを追加する時にはcolumn_createコマンドを使用します。また、テーブルを作成した時点でいくつかの疑似カラムが使用可能になっています。

引数
----

``name``

  作成するテーブルの名前を指定します。nameはデータベース内で一意な、未定義の名前でなければなりません。組込型名・組込コマンド名・組込関数名は予約済みであり、テーブル名には 使用できません。また、ピリオド('.'), コロン(':')を含む名前のテーブルは作成できません。

``flags``

  作成するテーブルの属性を示す数値か、パイプ('|')で組み合わせたシンボル名を指定します。(デフォルト値は0(="TABLE_HASH_KEY"))

   0, ``TABLE_HASH_KEY``
     主キー値をハッシュ表で管理するテーブルを作成します。ハッシュ表を使用したテーブルでは、主キー値に完全一致するレコードを高速に検索することができます。

   1, ``TABLE_PAT_KEY``
     主キー値をパトリシア木で管理するテーブルを作成します。パトリシア木を使用したテーブルでは、主キー値に完全一致するレコード、前方一致するレコード、および最長共通接頭辞となるレコードを高速に検索することができます。また、キー値の昇降順でレコードを取り出したり、キー値の範囲での検索を行うことができます。また、flagsの値に64を加えることによって、後方一致検索も可能となります。

   3, ``TABLE_NO_KEY``
     主キーを持たないテーブルを作成します。各レコードはIDのみによって特定することができます。

   4, ``TABLE_VIEW``
     複数のテーブルをまとめて操作するための仮想的なテーブル(view)を作成します。

   64, ``KEY_WITH_SIS``
     語彙表となるパトリシア木型のテーブルにおいて、後方一致検索を可能とします。

   128, ``KEY_NORMALIZE``
     ハッシュ表型か、パトリシア木型のテーブルにおいて、主キー値を正規化した上で登録します。この値が指定されたテーブルではたとえば、主キー値'abc'と'ABC' は同一のレコードに対応するものとみなされます。

``key_type``

  主キー値の型を指定します。主キー値を持つテーブルに限り有効です。型にはgroongaの組込型か、同一データベースに定義済みのユーザ定義型、定義済みのテーブルを指定することができます。

``value_type``

  値の型を指定します。tableの値には固定長の型のみが指定できます。(可変長の値が必要な場合は別途カラムを作成します) 型にはgroongaの組込型か、同一データベースに定義済みのユーザ定義型、またはテーブルを指定することができます。(デフォルトはvalueなし)

``default_tokenizer``

  作成するテーブルを語彙表として使用する場合、文字列を分割するトークナイザを指定します。

  組込のトークナイザとして、以下が準備されています。

  ``TokenDelimit``
    空白で区切られた文字列をトークンとする

  ``TokenUnigram``
    unigram(1文字を1トークンとする)

  ``TokenBigram``
    bigram(2文字の文字列要素をトークンとする)

  ``TokenTrigram``
    trigram(3文字の文字列要素をトークンとする)

  ``TokenMecab``
    形態素解析器mecabで解析した形態素をトークンとする。(mecabを組み込んだ場合のみ有効)

  トークナイザが指定されなかった場合は、対象の文字列を分割せずに語彙表に登録します。

返値
----

json形式
^^^^^^^^

::

 [成功かどうかのフラグ]

 ``成功かどうかのフラグ``

   エラーが生じなかった場合にはtrue、エラーが生じた場合にはfalseを返す。

例
--

ShortText型の主キーを持つハッシュ表型のテーブル、Entryを作成します。::

  table_create Entry --key_type ShortText
  [true]

ShortText型の主キーを持つパトリシア木型のテーブル、Termを作成します。主キー値は正規化して管理します。また、このテーブルを語彙表とする転置索引を作成する場合には、バイグラムの索引を作成します。::

  table_create Term --flags TABLE_PAT_KEY|KEY_NORMALIZE --key_type ShortText --default_tokenizer TokenBigram
  [true]
