インデックスの設定

メモ
大規模なリポジトリでインデックスを構築するには時間がかかります。これは、最初にインデックスを作成するときと、再インデックス(定義を変更した後にインデックスを再構築すること)を行うときの両方に当てはまります。Oak インデックスのトラブルシューティング時間のかかるインデックス再作成の防止も参照してください。

非常に大規模なリポジトリでインデックスを再作成する場合、特に MongoDB を使用してフルテキストのインデックスを作成する場合は、事前にテキストを抽出して、oak-run により初期インデックス構築し、インデックスを再作成する方法を検討してください。

インデックスは、リポジトリ内の oak:index ノードの下で、ノードとして設定されます。

インデックスノードのタイプは、oak:QueryIndexDefinition とする必要があります。各インデクサーでは、ノードプロパティとして複数の設定オプションを使用できます。 詳しくは、以下の各インデクサータイプに関する設定の詳細説明を参照してください。

プロパティインデックス

プロパティインデックスは、プロパティの制約を持つが、フルテキストではないクエリに役立ちます。 これは、次の手順に従って実行できます。

  1. http://localhost:4502/crx/de/index.jsp に移動して CRXDE を開きます。

  2. oak:index の下に新しいノードを作成します。

  3. このノードに PropertyIndex という名前を付け、ノードタイプを oak:QueryIndexDefinition に設定します。

  4. 新しいノードに対して次のプロパティを設定します。

    • タイプ: property property(String タイプ)
    • プロパティ名: jcr:uuid(Name タイプ)

    この例では、jcr:uuid プロパティに対してインデックスを作成します。このプロパティの役割は、関連付けられたノードの Universally Unique Identifier(UUID)を公開することです。

  5. 変更を保存します。

プロパティインデックスでは次の設定オプションを使用できます。

  • type プロパティは、インデックスのタイプを指定するものであり、この例の場合は property に設定する必要があります。

  • propertyNames プロパティは、インデックスに保存されるプロパティのリストを示します。欠落している場合は、プロパティ名の参照値としてノード名が使用されます。この例では、jcr:uuid プロパティの役割は、インデックスに追加されるノードの一意識別子(UUID)を公開することです。

  • unique フラグは、true に設定されている場合、プロパティインデックスに対して一意性制約を付加します。

  • declaringNodeTypes プロパティでは、インデックスが唯一適用される特定のノードタイプを指定できます。

  • reindex フラグが true に設定されている場合、コンテンツ全体のインデックス再作成をトリガーします。