7.3.55. schema
¶
7.3.55.1. 概要¶
バージョン 5.0.9 で追加.
schema
コマンドはデータベース内のスキーマを返します。
このコマンドはデータベースの詳細を知りたいときに便利です。たとえば、データベースを視覚化したり、データベースのGUIを作ったりするときに便利です。
7.3.55.2. 構文¶
このコマンドに引数はありません:
schema
7.3.55.3. 使い方¶
以下は出力例を示すためのサンプルスキーマです。
実行例:
table_create Memos TABLE_HASH_KEY ShortText
# [[0, 1337566253.89858, 0.000355720520019531], true]
column_create Memos content COLUMN_SCALAR Text
# [[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 memos_content_index \
COLUMN_INDEX|WITH_POSITION \
Memos content
# [[0, 1337566253.89858, 0.000355720520019531], true]
このサンプルスキーマに対する schema
コマンドの出力は次の通りです。
実行例:
schema
# [
# [
# 0,
# 1337566253.89858,
# 0.000355720520019531
# ],
# {
# "tables": {
# "Terms": {
# "normalizer": {
# "id": 78,
# "name": "NormalizerAuto"
# },
# "name": "Terms",
# "tokenizer": {
# "id": 67,
# "name": "TokenBigram"
# },
# "command": {
# "command_line": "table_create --name Terms --flags TABLE_PAT_KEY --key_type ShortText --default_tokenizer TokenBigram --normalizer NormalizerAuto",
# "name": "table_create",
# "arguments": {
# "key_type": "ShortText",
# "default_tokenizer": "TokenBigram",
# "normalizer": "NormalizerAuto",
# "flags": "TABLE_PAT_KEY",
# "name": "Terms"
# }
# },
# "indexes": [],
# "key_type": {
# "type": "type",
# "id": 14,
# "name": "ShortText"
# },
# "value_type": null,
# "token_filters": [],
# "type": "patricia trie",
# "id": 258,
# "columns": {
# "memos_content_index": {
# "name": "memos_content_index",
# "weight": false,
# "section": false,
# "compress": null,
# "command": {
# "command_line": "column_create --table Terms --name memos_content_index --flags COLUMN_INDEX|WITH_POSITION --type Memos --source content",
# "name": "column_create",
# "arguments": {
# "source": "content",
# "table": "Terms",
# "flags": "COLUMN_INDEX|WITH_POSITION",
# "name": "memos_content_index",
# "type": "Memos"
# }
# },
# "indexes": [],
# "sources": [
# {
# "table": "Memos",
# "id": 257,
# "full_name": "Memos.content",
# "name": "content"
# }
# ],
# "value_type": {
# "type": "reference",
# "id": 256,
# "name": "Memos"
# },
# "full_name": "Terms.memos_content_index",
# "position": true,
# "table": "Terms",
# "type": "index",
# "id": 259
# }
# }
# },
# "Memos": {
# "normalizer": null,
# "name": "Memos",
# "tokenizer": null,
# "command": {
# "command_line": "table_create --name Memos --flags TABLE_HASH_KEY --key_type ShortText",
# "name": "table_create",
# "arguments": {
# "key_type": "ShortText",
# "flags": "TABLE_HASH_KEY",
# "name": "Memos"
# }
# },
# "indexes": [],
# "key_type": {
# "type": "type",
# "id": 14,
# "name": "ShortText"
# },
# "value_type": null,
# "token_filters": [],
# "type": "hash table",
# "id": 256,
# "columns": {
# "content": {
# "name": "content",
# "weight": false,
# "section": false,
# "compress": null,
# "command": {
# "command_line": "column_create --table Memos --name content --flags COLUMN_SCALAR --type Text",
# "name": "column_create",
# "arguments": {
# "table": "Memos",
# "flags": "COLUMN_SCALAR",
# "name": "content",
# "type": "Text"
# }
# },
# "indexes": [
# {
# "table": "Terms",
# "section": 0,
# "id": 259,
# "full_name": "Terms.memos_content_index",
# "name": "memos_content_index"
# }
# ],
# "sources": [],
# "value_type": {
# "type": "type",
# "id": 15,
# "name": "Text"
# },
# "full_name": "Memos.content",
# "position": false,
# "table": "Memos",
# "type": "scalar",
# "id": 257
# }
# }
# }
# },
# "normalizers": {
# "NormalizerNFKC51": {
# "id": 79,
# "name": "NormalizerNFKC51"
# },
# "NormalizerAuto": {
# "id": 78,
# "name": "NormalizerAuto"
# }
# },
# "token_filters": {},
# "tokenizers": {
# "TokenBigramSplitSymbolAlphaDigit": {
# "id": 71,
# "name": "TokenBigramSplitSymbolAlphaDigit"
# },
# "TokenRegexp": {
# "id": 77,
# "name": "TokenRegexp"
# },
# "TokenBigramIgnoreBlankSplitSymbolAlphaDigit": {
# "id": 75,
# "name": "TokenBigramIgnoreBlankSplitSymbolAlphaDigit"
# },
# "TokenBigram": {
# "id": 67,
# "name": "TokenBigram"
# },
# "TokenDelimit": {
# "id": 65,
# "name": "TokenDelimit"
# },
# "TokenUnigram": {
# "id": 66,
# "name": "TokenUnigram"
# },
# "TokenBigramSplitSymbol": {
# "id": 69,
# "name": "TokenBigramSplitSymbol"
# },
# "TokenDelimitNull": {
# "id": 76,
# "name": "TokenDelimitNull"
# },
# "TokenBigramIgnoreBlankSplitSymbolAlpha": {
# "id": 74,
# "name": "TokenBigramIgnoreBlankSplitSymbolAlpha"
# },
# "TokenBigramSplitSymbolAlpha": {
# "id": 70,
# "name": "TokenBigramSplitSymbolAlpha"
# },
# "TokenTrigram": {
# "id": 68,
# "name": "TokenTrigram"
# },
# "TokenBigramIgnoreBlankSplitSymbol": {
# "id": 73,
# "name": "TokenBigramIgnoreBlankSplitSymbol"
# },
# "TokenBigramIgnoreBlank": {
# "id": 72,
# "name": "TokenBigramIgnoreBlank"
# }
# },
# "plugins": {},
# "types": {
# "UInt64": {
# "can_be_key_type": true,
# "size": 8,
# "id": 11,
# "can_be_value_type": true,
# "name": "UInt64"
# },
# "Int32": {
# "can_be_key_type": true,
# "size": 4,
# "id": 8,
# "can_be_value_type": true,
# "name": "Int32"
# },
# "Int16": {
# "can_be_key_type": true,
# "size": 2,
# "id": 6,
# "can_be_value_type": true,
# "name": "Int16"
# },
# "LongText": {
# "can_be_key_type": false,
# "size": 2147483648,
# "id": 16,
# "can_be_value_type": false,
# "name": "LongText"
# },
# "TokyoGeoPoint": {
# "can_be_key_type": true,
# "size": 8,
# "id": 17,
# "can_be_value_type": true,
# "name": "TokyoGeoPoint"
# },
# "Text": {
# "can_be_key_type": false,
# "size": 65536,
# "id": 15,
# "can_be_value_type": false,
# "name": "Text"
# },
# "ShortText": {
# "can_be_key_type": true,
# "size": 4096,
# "id": 14,
# "can_be_value_type": false,
# "name": "ShortText"
# },
# "Float": {
# "can_be_key_type": true,
# "size": 8,
# "id": 12,
# "can_be_value_type": true,
# "name": "Float"
# },
# "UInt8": {
# "can_be_key_type": true,
# "size": 1,
# "id": 5,
# "can_be_value_type": true,
# "name": "UInt8"
# },
# "UInt32": {
# "can_be_key_type": true,
# "size": 4,
# "id": 9,
# "can_be_value_type": true,
# "name": "UInt32"
# },
# "Object": {
# "can_be_key_type": true,
# "size": 8,
# "id": 2,
# "can_be_value_type": true,
# "name": "Object"
# },
# "UInt16": {
# "can_be_key_type": true,
# "size": 2,
# "id": 7,
# "can_be_value_type": true,
# "name": "UInt16"
# },
# "Int64": {
# "can_be_key_type": true,
# "size": 8,
# "id": 10,
# "can_be_value_type": true,
# "name": "Int64"
# },
# "Time": {
# "can_be_key_type": true,
# "size": 8,
# "id": 13,
# "can_be_value_type": true,
# "name": "Time"
# },
# "Bool": {
# "can_be_key_type": true,
# "size": 1,
# "id": 3,
# "can_be_value_type": true,
# "name": "Bool"
# },
# "WGS84GeoPoint": {
# "can_be_key_type": true,
# "size": 8,
# "id": 18,
# "can_be_value_type": true,
# "name": "WGS84GeoPoint"
# },
# "Int8": {
# "can_be_key_type": true,
# "size": 1,
# "id": 4,
# "can_be_value_type": true,
# "name": "Int8"
# }
# }
# }
# ]
7.3.55.4. 引数¶
このセクションではすべての引数について説明します。
7.3.55.4.1. 必須引数¶
必須の引数はありません。
7.3.55.4.2. 省略可能引数¶
省略可能な引数はありません。
7.3.55.5. 戻り値¶
schema
はこのデータベースのスキーマを返します。:
[HEADER, SCHEMA]
7.3.55.5.1. HEADER
¶
HEADER
については 出力形式 を参照してください。
7.3.55.5.2. SCHEMA
¶
SCHEMA
は以下の情報を含んだオブジェクトです。:
{
"plugins": PLUGINS,
"types": TYPES,
"tokenizers": TOKENIZERS,
"normalizers": NORMALIZERS,
"token_filters": TOKEN_FITLERS,
"tables": TABLES
}
7.3.55.5.3. PLUGINS
¶
PLUGINS
はオブジェクトです。キーはプラグイン名で値はプラグインの詳細です。:
{
"PLUGIN_NAME_1": PLUGIN_1,
"PLUGIN_NAME_2": PLUGIN_2,
...
"PLUGIN_NAME_n": PLUGIN_n
}
7.3.55.5.4. PLUGIN
¶
PLUGIN
はプラグインの詳細を示すオブジェクトです。
{
"name": PLUGIN_NAME
}
以下は PLUGIN
のプロパティです。
名前 |
説明 |
---|---|
|
プラグイン名。 plugin_register で使います。 |
7.3.55.5.5. TYPES
¶
TYPES
はオブジェクトです。キーは型名で、値は型の詳細です。:
{
"TYPE_NAME_1": TYPE_1,
"TYPE_NAME_2": TYPE_2,
...
"TYPE_NAME_n": TYPE_n
}
7.3.55.5.6. TYPE
¶
TYPE
は型の詳細を示すオブジェクトです。:
{
"name": TYPE_NAME,
"size": SIZE_OF_ONE_VALUE_IN_BYTE,
"can_be_key_type": BOOLEAN,
"can_be_value_type": BOOLEAN
}
以下は TYPE
のプロパティです。
名前 |
説明 |
---|---|
|
型名。 |
|
1つの値のバイト数です。 |
|
この型をテーブルのキーの型に使えるなら |
|
この型をテーブルの値の型に使えるなら |
7.3.55.5.7. TOKENIZERS
¶
TOKENIZERS
はオブジェクトです。キーはトークナイザー名で値はトークナイザーの詳細です。:
{
"TOKENIZER_NAME_1": TOKENIZER_1,
"TOKENIZER_NAME_2": TOKENIZER_2,
...
"TOKENIZER_NAME_n": TOKENIZER_n
}
7.3.55.5.8. TOKENIZER
¶
TOKENIZER
はトークナイザーの詳細を示すオブジェクトです。:
{
"name": TOKENIZER_NAME
}
以下は TOKENIZER
のプロパティです。
名前 |
説明 |
---|---|
|
トークナイザー名。 default_tokenizer で使います。 |
7.3.55.5.9. NORMALIZERS
¶
NORMALIZERS
はオブジェクトです。キーはノーマライザー名で値はノーマライザーの詳細です。:
{
"NORMALIZER_NAME_1": NORMALIZER_1,
"NORMALIZER_NAME_2": NORMALIZER_2,
...
"NORMALIZER_NAME_n": NORMALIZER_n
}
7.3.55.5.10. NORMALIZER
¶
NORMALIZER
はノーマライザーの詳細を示すオブジェクトです。:
{
"name": NORMALIZER_NAME
}
以下は NORMALIZER
のプロパティです。
名前 |
説明 |
---|---|
|
ノーマライザー名。 normalizer で使います。 |
7.3.55.5.11. TOKEN_FILTERS
¶
TOKEN_FILTERS
はオブジェクトです。キーはトークンフィルター名で値はトークンフィルターの詳細です。:
{
"TOKEN_FILTER_NAME_1": TOKEN_FILTER_1,
"TOKEN_FILTER_NAME_2": TOKEN_FILTER_2,
...
"TOKEN_FILTER_NAME_n": TOKEN_FILTER_n
}
7.3.55.5.12. TOKEN_FILTER
¶
TOKEN_FILTER
はトークンフィルターの詳細を示すオブジェクトです。:
{
"name": TOKEN_FILTER_NAME
}
以下は TOKEN_FILTER
のプロパティです。
名前 |
説明 |
---|---|
|
トークンフィルター名。 token_filters で使います。 |
7.3.55.5.13. TABLES
¶
TABLES
はオブジェクトです。キーはテーブル名で値はテーブルの詳細です。:
{
"TABLE_NAME_1": TABLE_1,
"TABLE_NAME_2": TABLE_2,
...
"TABLE_NAME_n": TABLE_n
}
7.3.55.5.14. TABLE
¶
TABLE
はテーブルの詳細を示すオブジェクトです。
{
"name": TABLE_NAME
"type": TYPE,
"key_type": KEY_TYPE,
"value_type": VALUE_TYPE,
"tokenizer": TOKENIZER,
"normalizer": NORMALIZER,
"token_filters": [
TOKEN_FILTER_1,
TOKEN_FILTER_2,
...,
TOKEN_FILTER_n,
],
"indexes": [
INDEX_1,
INDEX_2,
...,
INDEX_n
],
"command": COMMAND,
"columns": {
"COLUMN_NAME_1": COLUMN_1,
"COLUMN_NAME_2": COLUMN_2,
...,
"COLUMN_NAME_3": COLUMN_3,
}
}
以下は TABLE
のプロパティです。
名前 |
説明 |
---|---|
|
テーブル名。 |
|
テーブルの種類。 以下のどれかです。
|
|
テーブルのキーの型。 テーブルの種類が テーブルの種類が
|
|
テーブルの値の型。 テーブルが「値」を使っていない場合は テーブルが「値」を使っている場合はオブジェクトになります。オブジェクトは次のプロパティを持ちます。
|
|
テーブルのトークナイザー。 default_tokenizer で指定されたものです。 テーブルがトークナイザーを使っていない場合は テーブルがトークナイザーを使っている場合はオブジェクトになります。オブジェクトは次のプロパティを持ちます。
|
|
テーブルのノーマライザー。 normalizer で指定されたものです。 テーブルがノーマライザーを使っていない場合は テーブルがノーマライザーを使っている場合はオブジェクトになります。オブジェクトは次のプロパティを持ちます。
|
|
テーブルのトークンフィルターです。 token_filters で指定されたものです。 オブジェクトの配列です。オブジェクトは次のプロパティを持ちます。
|
|
テーブルのキーに対するインデックス。 INDEX の配列です。 |
|
このテーブルを作るためのGroongaコマンドに関する情報。 COMMAND になります。 |
|
テーブルのカラム。 オブジェクトです。キーはカラム名で値は COLUMN です。 |
7.3.55.5.15. INDEX
¶
INDEX
はインデックスの詳細を示すオブジェクトです。:
{
"full_name": INDEX_COLUMN_NAME_WITH_TABLE_NAME,
"table": TABLE_NAME,
"name": INDEX_COLUMN_NAME,
"section": SECTION
}
以下は INDEX
のプロパティです。
名前 |
説明 |
---|---|
|
テーブル名を含むインデックスカラム名。 例: |
|
インデックスカラムのテーブル名。 例: |
|
インデックスカラム名。 例: |
|
テーブルのキーに対するインデックスカラムのセクション番号。 インデックスカラムがマルチカラムインデックスでない場合は |
7.3.55.5.16. COMMAND
¶
COMMAND
はこのテーブル・カラムを作る方法を示したオブジェクトです。:
{
"name": COMMAND_NAME,
"arguments": {
"KEY_1": "VALUE_1",
"KEY_2": "VALUE_2",
...,
"KEY_n": "VALUE_n"
},
"command_line": COMMAND_LINE
}
以下は COMMAND
のプロパティです。
名前 |
説明 |
---|---|
|
このテーブル・カラムを作るGroongaコマンドの名前。 |
|
このテーブル・カラムを作るためのGroongaコマンドの引数。 オブジェクトになります。キーは引数名で値は引数の値です。 |
|
このテーブル・カラムを作るGroongaコマンドのコマンドラインです。 この文字列はGroongaが評価できます。 |
7.3.55.5.17. COLUMN
¶
COLUMN
はカラムの詳細を示したオブジェクトです。:
{
"name": COLUMN_NAME,
"table": TABLE_NAME,
"full_name": COLUMN_NAME_WITH_TABLE,
"type": TYPE,
"value_type": VALUE_TYPE,
"compress": COMPRESS,
"section": SECTION,
"weight": WEIGHT,
"compress": COMPRESS,
"section": BOOLEAN,
"weight": BOOLEAN,
"position": BOOLEAN,
"sources": [
SOURCE_1,
SOURCE_2,
...,
SOURCE_n
],
"indexes": [
INDEX_1,
INDEX_2,
...,
INDEX_n
],
"command": COMMAND
}
以下は COLUMN
のプロパティです。
名前 |
説明 |
---|---|
|
カラム名。 例: |
|
カラムのテーブル名。 例: |
|
テーブル名を含むカラム名。 例: |
|
カラムの種類。 以下のどれかです。 |
|
カラムの値の型。 オブジェクトです。このオブジェクトは次のプロパティを持ちます。
|
|
カラムの圧縮方法です。 カラムがどの圧縮方法も使っていない場合は カラムが圧縮方法を使っている場合は次のどれかになります。
|
|
カラムがセクション情報を保存できるかどうか。
通常、インデックスカラムでない場合は |
|
カラムが重み情報を保存できるかどうか。
|
|
カラムが位置情報を保存できるかどうか。
通常、インデックスカラムでない場合は |
|
インデックスカラムのソースカラム。 SOURCE の配列になります。 通常、カラムがインデックスカラムでない場合は空配列になります。 |
|
カラムのインデックス。 INDEX の配列です。 |
|
このカラムを作るためのGroongaコマンド情報。 COMMAND になります。 |
7.3.55.5.18. SOURCE
¶
SOURCE
はソースの詳細を示すオブジェクトです。:
{
"name": COLUMN_NAME,
"table": TABLE_NAME,
"full_name": COLUMN_NAME_WITH_TABLE_NAME
}
以下は SOURCE
のプロパティです。
名前 |
説明 |
---|---|
|
ソースカラム名。 例:
|
|
ソースカラムのテーブル名。 例: |
|
テーブル名を含むソースカラム名。 例: |