version 11 (Modified)
SET INDEX (aField; index{; mode{; *}})
| 引数 | 型 | 説明 | |
| aField | フィールド | インデックスを作成または削除するフィールド | |
| index | ブール | 倍長整数 | True=作成、False=削除、または | |
| インデックスを作成: -1=キーワード、 | |||
| 0=デフォルト、1=標準B-Tree、3=クラスタB-Tree | |||
| mode | 倍長整数 | 廃止 (引数は無視) | |
| * | *を渡すと非同期にインデックスを作成 |
説明
SET INDEXには2つのシンタックスがあります。
・引数indexにブールを渡す場合、コマンドはaFieldに渡したフィールド用のインデックスを作成したり、削除したりします。
・引数indexに整数を渡す場合、コマンドは指定されたタイプのインデックスを作成します。
index = ブール
フィールドをインデックスするには、indexにTrueを渡します。コマンドはデフォルトタイプのインデックスを作成します。インデックスが既に存在する場合、呼び出しは機能しません。
indexにFalesを渡すと、コマンドはフィールドに関連するすべての非複合インデックスを削除します。インデックスが存在しない場合、呼び出しは機能しません。
index = 整数
コマンドはaFieldに対して指定されたインデックスを作成します。"Index type"テーマにある以下の定数のいづれか1つを渡します。
・Keywords Index (-1): フィールド内容を単語単位でインデックス付けできるキーワードインデックス。フィールドが文字またはテキストタイプの場合のみ、このタイプのインデックスを使用します。
・Default Index 型 (0): この場合、4Dはフィールドのコンテンツに応じて最適なインデックスタイプを定義します (キーワードインデックスを除く)。
・Standard BTree Index (1): 標準B-Treeタイプのインデックス。この多目的用のインデックスタイプは4Dの以前のバージョンで使用されています。
・Cluster BTree Index (3): クラスタを使用するB-Treeタイプのインデックス。このインデックスタイプは、インデックスが少数のキーを持つ場合、つまり同じ値がデータ内で頻繁に生じる場合に最も適しています。
SET INDEXコマンドはロックされたレコードのインデックス付けは行いません。レコードがロック解除されるまで待機します。
バージョン11以降、引数modeはもうその役割を果たさなくなっています。渡された場合は無視されます。
オプション引数*を用いて、非同期に(同時に)インデックスが付けられるようになりました。非同期なインデックス付けにより、インデックス付けが終了したかどうかに関係なく、呼び出し側のメソッドの実行をそのまま続行できます。ただし、インデックスが必要なコマンドを実行すると失敗します。
Notes:
・このコマンドで作成されたインデックスには名前がありません。名前に基づくシンタックスを用いているDELETE INDEXコマンドでそれらのインデックスを削除することはできません。
・複合インデックスを作成したり削除するために、このコマンドを使用することはできません。
・このコマンドを使用して、CREATE INDEXで作成されたキーワードインデックスを削除することはできません。
例題
1. 以下の例は、[Customers]IDフィールドにインデックスを付けます。
UNLOAD RECORD([Customers]) SET INDEX ([Customers]ID; True)
2. [Customers]Name フィールドを非同期モードでインデックスします:
SET INDEX ([Customers]Name; True;*)
3.
キーワードインデックスを作成します:
SET INDEX([Books]Summary;Keywords Index)
参照
CREATE INDEX, DELETE INDEX, GET FIELD PROPERTIES, ORDER BY, QUERY.