7.3.51. schema
¶
7.3.51.1. 概要¶
バージョン 5.0.9 で追加.
schema
コマンドはデータベース内のスキーマを返します。
このコマンドはデータベースの詳細を知りたいときに便利です。たとえば、データベースを視覚化したり、データベースのGUIを作ったりするときに便利です。
7.3.51.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": {
# "name": "NormalizerAuto"
# },
# "name": "Terms",
# "tokenizer": {
# "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",
# "name": "ShortText"
# },
# "value_type": null,
# "token_filters": [],
# "type": "patricia trie",
# "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 --sources content",
# "name": "column_create",
# "arguments": {
# "table": "Terms",
# "flags": "COLUMN_INDEX|WITH_POSITION",
# "name": "memos_content_index",
# "sources": "content",
# "type": "Memos"
# }
# },
# "indexes": [],
# "sources": [
# {
# "table": "Memos",
# "name": "content",
# "full_name": "Memos.content"
# }
# ],
# "value_type": {
# "type": "reference",
# "name": "Memos"
# },
# "full_name": "Terms.memos_content_index",
# "position": true,
# "table": "Terms",
# "type": "index"
# }
# }
# },
# "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",
# "name": "ShortText"
# },
# "value_type": null,
# "token_filters": [],
# "type": "hash table",
# "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,
# "name": "memos_content_index",
# "full_name": "Terms.memos_content_index"
# }
# ],
# "sources": [],
# "value_type": {
# "type": "type",
# "name": "Text"
# },
# "full_name": "Memos.content",
# "position": false,
# "table": "Memos",
# "type": "scalar"
# }
# }
# }
# },
# "normalizers": {
# "NormalizerNFKC51": {
# "name": "NormalizerNFKC51"
# },
# "NormalizerAuto": {
# "name": "NormalizerAuto"
# }
# },
# "token_filters": {},
# "tokenizers": {
# "TokenBigramSplitSymbolAlphaDigit": {
# "name": "TokenBigramSplitSymbolAlphaDigit"
# },
# "TokenRegexp": {
# "name": "TokenRegexp"
# },
# "TokenBigramIgnoreBlankSplitSymbolAlphaDigit": {
# "name": "TokenBigramIgnoreBlankSplitSymbolAlphaDigit"
# },
# "TokenBigram": {
# "name": "TokenBigram"
# },
# "TokenDelimit": {
# "name": "TokenDelimit"
# },
# "TokenUnigram": {
# "name": "TokenUnigram"
# },
# "TokenBigramSplitSymbol": {
# "name": "TokenBigramSplitSymbol"
# },
# "TokenDelimitNull": {
# "name": "TokenDelimitNull"
# },
# "TokenBigramIgnoreBlankSplitSymbolAlpha": {
# "name": "TokenBigramIgnoreBlankSplitSymbolAlpha"
# },
# "TokenBigramSplitSymbolAlpha": {
# "name": "TokenBigramSplitSymbolAlpha"
# },
# "TokenTrigram": {
# "name": "TokenTrigram"
# },
# "TokenMecab": {
# "name": "TokenMecab"
# },
# "TokenBigramIgnoreBlankSplitSymbol": {
# "name": "TokenBigramIgnoreBlankSplitSymbol"
# },
# "TokenBigramIgnoreBlank": {
# "name": "TokenBigramIgnoreBlank"
# }
# },
# "plugins": {},
# "types": {
# "UInt64": {
# "can_be_key_type": true,
# "name": "UInt64",
# "can_be_value_type": true,
# "size": 8
# },
# "Int32": {
# "can_be_key_type": true,
# "name": "Int32",
# "can_be_value_type": true,
# "size": 4
# },
# "Int16": {
# "can_be_key_type": true,
# "name": "Int16",
# "can_be_value_type": true,
# "size": 2
# },
# "LongText": {
# "can_be_key_type": false,
# "name": "LongText",
# "can_be_value_type": false,
# "size": 2147483648
# },
# "TokyoGeoPoint": {
# "can_be_key_type": true,
# "name": "TokyoGeoPoint",
# "can_be_value_type": true,
# "size": 8
# },
# "Text": {
# "can_be_key_type": false,
# "name": "Text",
# "can_be_value_type": false,
# "size": 65536
# },
# "ShortText": {
# "can_be_key_type": true,
# "name": "ShortText",
# "can_be_value_type": false,
# "size": 4096
# },
# "Float": {
# "can_be_key_type": true,
# "name": "Float",
# "can_be_value_type": true,
# "size": 8
# },
# "UInt8": {
# "can_be_key_type": true,
# "name": "UInt8",
# "can_be_value_type": true,
# "size": 1
# },
# "UInt32": {
# "can_be_key_type": true,
# "name": "UInt32",
# "can_be_value_type": true,
# "size": 4
# },
# "Object": {
# "can_be_key_type": true,
# "name": "Object",
# "can_be_value_type": true,
# "size": 8
# },
# "UInt16": {
# "can_be_key_type": true,
# "name": "UInt16",
# "can_be_value_type": true,
# "size": 2
# },
# "Int64": {
# "can_be_key_type": true,
# "name": "Int64",
# "can_be_value_type": true,
# "size": 8
# },
# "Time": {
# "can_be_key_type": true,
# "name": "Time",
# "can_be_value_type": true,
# "size": 8
# },
# "Bool": {
# "can_be_key_type": true,
# "name": "Bool",
# "can_be_value_type": true,
# "size": 1
# },
# "WGS84GeoPoint": {
# "can_be_key_type": true,
# "name": "WGS84GeoPoint",
# "can_be_value_type": true,
# "size": 8
# },
# "Int8": {
# "can_be_key_type": true,
# "name": "Int8",
# "can_be_value_type": true,
# "size": 1
# }
# }
# }
# ]
7.3.51.4. 引数¶
このセクションではすべての引数について説明します。
7.3.51.4.1. 必須引数¶
必須の引数はありません。
7.3.51.4.2. 省略可能引数¶
省略可能な引数はありません。
7.3.51.5. 戻り値¶
schema
はこのデータベースのスキーマを返します。:
[HEADER, SCHEMA]
7.3.51.5.2. SCHEMA
¶
SCHEMA
は以下の情報を含んだオブジェクトです。:
{
"plugins": PLUGINS,
"types": TYPES,
"tokenizers": TOKENIZERS,
"normalizers": NORMALIZERS,
"token_filters": TOKEN_FITLERS,
"tables": TABLES
}
7.3.51.5.3. PLUGINS
¶
PLUGINS
はオブジェクトです。キーはプラグイン名で値はプラグインの詳細です。:
{
"PLUGIN_NAME_1": PLUGIN_1,
"PLUGIN_NAME_2": PLUGIN_2,
...
"PLUGIN_NAME_n": PLUGIN_n
}
7.3.51.5.4. PLUGIN
¶
PLUGIN
はプラグインの詳細を示すオブジェクトです。
{
"name": PLUGIN_NAME
}
以下は PLUGIN
のプロパティです。
名前 |
説明 |
---|---|
name |
プラグイン名。 plugin_register で使います。 |
7.3.51.5.5. TYPES
¶
TYPES
はオブジェクトです。キーは型名で、値は型の詳細です。:
{
"TYPE_NAME_1": TYPE_1,
"TYPE_NAME_2": TYPE_2,
...
"TYPE_NAME_n": TYPE_n
}
7.3.51.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
のプロパティです。
名前 |
説明 |
---|---|
name |
型名。 |
size |
1つの値のバイト数です。 |
can_be_key_type |
この型をテーブルのキーの型に使えるなら |
can_be_value_type |
この型をテーブルの値の型に使えるなら |
7.3.51.5.7. TOKENIZERS
¶
TOKENIZERS
はオブジェクトです。キーはトークナイザー名で値はトークナイザーの詳細です。:
{
"TOKENIZER_NAME_1": TOKENIZER_1,
"TOKENIZER_NAME_2": TOKENIZER_2,
...
"TOKENIZER_NAME_n": TOKENIZER_n
}
7.3.51.5.8. TOKENIZER
¶
TOKENIZER
はトークナイザーの詳細を示すオブジェクトです。:
{
"name": TOKENIZER_NAME
}
以下は TOKENIZER
のプロパティです。
名前 |
説明 |
---|---|
name |
トークナイザー名。 default_tokenizer で使います。 |
7.3.51.5.9. NORMALIZERS
¶
NORMALIZERS
はオブジェクトです。キーはノーマライザー名で値はノーマライザーの詳細です。:
{
"NORMALIZER_NAME_1": NORMALIZER_1,
"NORMALIZER_NAME_2": NORMALIZER_2,
...
"NORMALIZER_NAME_n": NORMALIZER_n
}
7.3.51.5.10. NORMALIZER
¶
NORMALIZER
はノーマライザーの詳細を示すオブジェクトです。:
{
"name": NORMALIZER_NAME
}
以下は NORMALIZER
のプロパティです。
名前 |
説明 |
---|---|
name |
ノーマライザー名。 normalizer で使います。 |
7.3.51.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.51.5.12. TOKEN_FILTER
¶
TOKEN_FILTER
はトークンフィルターの詳細を示すオブジェクトです。:
{
"name": TOKEN_FILTER_NAME
}
以下は TOKEN_FILTER
のプロパティです。
名前 |
説明 |
---|---|
name |
トークンフィルター名。 token_filters で使います。 |
7.3.51.5.13. TABLES
¶
TABLES
はオブジェクトです。キーはテーブル名で値はテーブルの詳細です。:
{
"TABLE_NAME_1": TABLE_1,
"TABLE_NAME_2": TABLE_2,
...
"TABLE_NAME_n": TABLE_n
}
7.3.51.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
のプロパティです。
名前 |
説明 |
---|---|
name |
テーブル名。 |
type |
テーブルの種類。 以下のどれかです。
|
key_type |
テーブルのキーの型。 テーブルの種類が テーブルの種類が
|
value_type |
テーブルの値の型。 テーブルが「値」を使っていない場合は テーブルが「値」を使っている場合はオブジェクトになります。オブジェクトは次のプロパティを持ちます。
|
tokenizer |
テーブルのトークナイザー。 default_tokenizer で指定されたものです。 テーブルがトークナイザーを使っていない場合は テーブルがトークナイザーを使っている場合はオブジェクトになります。オブジェクトは次のプロパティを持ちます。
|
normalizer |
テーブルのノーマライザー。 normalizer で指定されたものです。 テーブルがノーマライザーを使っていない場合は テーブルがノーマライザーを使っている場合はオブジェクトになります。オブジェクトは次のプロパティを持ちます。
|
token_filters |
テーブルのトークンフィルターです。 token_filters で指定されたものです。 オブジェクトの配列です。オブジェクトは次のプロパティを持ちます。
|
indexes |
テーブルのキーに対するインデックス。 INDEX の配列です。 |
command |
このテーブルを作るためのGroongaコマンドに関する情報。 COMMAND になります。 |
columns |
テーブルのカラム。 オブジェクトです。キーはカラム名で値は COLUMN です。 |
7.3.51.5.15. INDEX
¶
INDEX
はインデックスの詳細を示すオブジェクトです。:
{
"full_name": INDEX_COLUMN_NAME_WITH_TABLE_NAME,
"table": TABLE_NAME,
"name": INDEX_COLUMN_NAME,
"section": SECTION
}
以下は INDEX
のプロパティです。
名前 |
説明 |
---|---|
full_name |
テーブル名を含むインデックスカラム名。 例: |
table |
インデックスカラムのテーブル名。 例: |
name |
インデックスカラム名。 例: |
section |
テーブルのキーに対するインデックスカラムのセクション番号。 インデックスカラムがマルチカラムインデックスでない場合は |
7.3.51.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
のプロパティです。
名前 |
説明 |
---|---|
name |
このテーブル・カラムを作るGroongaコマンドの名前。 |
arguments |
このテーブル・カラムを作るためのGroongaコマンドの引数。 オブジェクトになります。キーは引数名で値は引数の値です。 |
command_line |
このテーブル・カラムを作るGroongaコマンドのコマンドラインです。 この文字列はGroongaが評価できます。 |
7.3.51.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
のプロパティです。
名前 |
説明 |
---|---|
name |
カラム名。 例: |
table |
カラムのテーブル名。 例: |
full_name |
テーブル名を含むカラム名。 例: |
type |
カラムの種類。 以下のどれかです。 |
value_type |
カラムの値の型。 オブジェクトです。このオブジェクトは次のプロパティを持ちます。
|
compress |
カラムの圧縮方法です。 カラムがどの圧縮方法も使っていない場合は カラムが圧縮方法を使っている場合は次のどれかになります。
|
section |
カラムがセクション情報を保存できるかどうか。
通常、インデックスカラムでない場合は |
weight |
カラムが重み情報を保存できるかどうか。
|
position |
カラムが位置情報を保存できるかどうか。
通常、インデックスカラムでない場合は |
sources |
インデックスカラムのソースカラム。 SOURCE の配列になります。 通常、カラムがインデックスカラムでない場合は空配列になります。 |
indexes |
カラムのインデックス。 INDEX の配列です。 |
command |
このカラムを作るためのGroongaコマンド情報。 COMMAND になります。 |
7.3.51.5.18. SOURCE
¶
SOURCE
はソースの詳細を示すオブジェクトです。:
{
"name": COLUMN_NAME,
"table": TABLE_NAME,
"full_name": COLUMN_NAME_WITH_TABLE_NAME
}
以下は SOURCE
のプロパティです。
名前 |
説明 |
---|---|
name |
ソースカラム名。 例:
|
table |
ソースカラムのテーブル名。 例: |
full_name |
テーブル名を含むソースカラム名。 例: |