# groonga - オープンソースのカラムストア機能付き全文検索エンジン

- English

# 7.3.11. `column_create`

## 7.3.11.1. 概要

column_create - カラムの追加

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

column_createは、使用しているデータベースのテーブルに対してカラムを追加します。

## 7.3.11.2. 構文

    column_create table name flags type [source]

## 7.3.11.3. 使い方

テーブルEntryに、ShortText型の値を格納するカラム、bodyを作成します。:

    column_create Entry body --type ShortText
    [true]

テーブルTermに、Entryテーブルのbodyカラムの値を対象とする完全転置インデックス型カラム、entry_bodyを作成します。:

    column_create Term entry_body COLUMN_INDEX|WITH_POSITION Entry body
    [true]

## 7.3.11.4. 引数

`table`

> カラムを追加するテーブルの名前を指定します。

`name`

> 作成するカラムの名前を指定します。カラム名は、テーブルの中で一意でなければなりません。

> ピリオド('.'), コロン(':')を含む名前のカラムは作成できません。また、アンダースコア('_')で始まる名前は予約済みであり、使用できません。

`flags`

> カラムの属性を表す以下の数値か、パイプ('|')で組み合わせたシンボル名を指定します。

> 0, `COLUMN_SCALAR`
>   単一の値が格納できるカラムを作成します。
> 1, `COLUMN_VECTOR`
>   複数の値の配列を格納できるカラムを作成します。
> 2, `COLUMN_INDEX`
>   インデックス型のカラムを作成します。

> カラムの値を圧縮するためのフラグが2つあります。ただしそれらのフラグを指定することは今のところできません。これはカラムの値を参照するときにメモリリークする問題 GitHub#6 があるためです。 この問題はzlib、lzoいずれでも発生します。

> 16, `COMPRESS_ZLIB`

>   zlibを使ってカラムの値を圧縮します。このフラグはGroongaを `--with-zlib` つきでビルドすると有効になります。

> 32, `COMPRESS_LZO`

>   lzoを使ってカラムの値を圧縮します。このフラグはGroongaを `--with-lzo` つきでビルドすると有効になります。

> インデックス型のカラムについては、flagsの値に以下の値を加えることによって、追加の属 性を指定することができます。

> 128, `WITH_SECTION`
>   段落情報を格納するインデックスを作成します。
> 256, `WITH_WEIGHT`
>   ウェイト情報を格納するインデックスを作成します。
> 512, `WITH_POSITION`
>   位置情報を格納するインデックス(完全転置インデックス)を作成します。

`type`

> 値の型を指定します。Groongaの組込型か、同一データベースに定義済みのユーザ定義型、定義済みのテーブルを指定することができます。

`source`

> インデックス型のカラムを作成した場合は、インデックス対象となるカラムをsource引数に指定します。

## 7.3.11.5. 戻り値

    [HEADER, SUCCEEDED]

`HEADER`

> `HEADER` については 出力形式 を参照してください。

`SUCCEEDED`

> コマンドの実行が成功するとtrueを返します。失敗するとエラーとしてfalseを返します。