部分文字列インデックスの同期化
部分文字列インデックスのデータは、ソース属性が変更されたら同期化する必要があります。新規オブジェクトの作成 (挿入)、既存のオブジェクトの属性の修正 (更新)、またはオブジェクトの削除 (除去) を行う操作では、部分文字列インデックス内のデータを更新する必要があります。
部分文字列インデックスとそのソース属性を同期化する場合には、次のオプションを使用できます。
イベント駆動型の同期化
スケジュールされたバックグラウンドキュー処理
手動の同期化
部分文字列インデックスにはさまざまな同期化方法を使用できます。個々の部分文字列インデックスと操作タイプ (挿入、更新、または除去) は、同期化に対して個別に設定できます。たとえば、挿入および更新操作にはイベント処理が使用でき、除去操作にはバックグラウンドキュー処理が使用できたりします。
イベント駆動型の同期化
イベント駆動型の同期化は、挿入、更新、または除去イベントで発生する可能性があります。有効にした場合、元の操作と同じトランザクション内で、ソース属性が部分文字列インデックスと同期化されます。部分文字列インデックスを使用するすべての照会に、変更内容が即座に反映されます。このオプションの短所は、操作の処理時間が長くなることです。
イベント駆動型の同期化は、コンフィギュレーションファイル内のsynchronizeOnInsertsynchronizeOnRemovesynchronizeOnUpdate プロパティを使用して設定します。この同期化オプションはデフォルトでは無効になっています。
スケジュールされたバックグラウンドキュー処理の同期化
スケジュールされたバックグラウンドキュー処理を使用するように同期化を設定すると、コンフィギュレーションファイルに基づいて、スケジュールされたキューが定期的に実行されます。このスケジュールされたキュー処理により、この期間内に実行される部分文字列インデックスと操作タイプが決定されます。これら個別のタスクを実行するには、別々の処理キューが使用されます。挿入および更新操作の場合、ソーステーブル全体を処理することも、最新の変更内容 (前回の処理より後の変更内容) のみを処理することもできます。除去操作の場合は、部分文字列インデックス全体のみを処理できます。
スケジュールされたバックグラウンドキュー処理の同期化は、コンフィギュレーションファイルで指定された期間プロパティ (synchronizationSchedulePeriod) および間隔のプロパティ (scheduleSynchronizeFullInsertIntervalscheduleSynchronizeFullRemoveIntervalscheduleSynchronizeFullUpdateIntervalscheduleSynchronizeRecentInsertIntervalscheduleSynchronizeRecentUpdateInterval) を使用して設定します。
設定された期間および間隔のプロパティの組み合わせによって、同期化の発生頻度が決定されます。たとえば、期間が 10 秒、間隔が 30 であれば、同期化は 300 秒に 1 回の頻度になります。間隔の値がゼロを下回る場合、キュー処理を使用した同期化は行われません。間隔の値がゼロと等しい場合、メソッドサーバーの起動時に 1 回だけ同期化されません。
スケジュールされたバックグラウンドキュー処理では、部分文字列インデックスの処理時間によってソースオブジェクトに対する操作に影響が出ることはありません。ソースオブジェクトに対する操作と部分文字列インデックスの同期化の間には遅延が発生します。この結果、この遅延ウィンドウ内で実行される照会はソースオブジェクトの現在の状態と一致しない可能性があります。
手動の同期化
手動の同期化は、subStringIndexTool による sync 操作を使用して実行します。この操作では、指定した部分文字列インデックスのメソッドサーバーで完全な同期化が即座に実行されます。
これは役に立ちましたか?