単一レコードのテキストインデックスの再生成

  • リリースバージョン: Xanadu
  • 更新日 2024年08月10日
  • 所要時間:3分
  • 単一レコードのテキスト検索インデックスを更新します。このアプローチを使用すると、テーブル全体のフルテキストインデックスを再ビルドせずに、テキストインデックスの作成が検索の問題の原因であるかどうかをすばやく確認できます。

    始める前に

    以下を特定します。
    • 期待する結果を返さない検索用語
    • 用語の検索時に返されない、識別された検索用語を含むレコード
    • 識別されたレコードを含むテーブル

    識別されたテーブルでは、既にテキストインデックス作成が有効になっている必要があります。

    必要なロール:admin
    注:
    If the glide.script_processor.admin system property's value has been changed from the default value, you need the role specified by that property value. For details on this property value and its effects, see Restrict access to background script [Updated in Security Center 1.3 and 2.0].

    このタスクについて

    このインデックスの再作成メソッドでは、単一のレコードのテキスト検索インデックスを再ビルドします。テーブル内のすべてのレコードのテキストインデックスを再ビルドするよりも時間がかかりません。

    この方法を使用すると、テキストインデックス作成が検索の問題の原因であるかどうかをすばやく判断できます。これを行うと、テーブルのテキスト検索インデックス全体の再ビルドに関連する遅延を回避できます。

    手順

    1. コンテキストメニューから [sys_id のコピー] を選択して、識別されたレコードの sys_id をコピーします。
    2. 移動先 すべて > システム定義 > スクリプト - バックグラウンド.
      注:
      If the glide.script_processor.admin system property's value is set to security_admin, you must elevate to that privileged role to access this module. For more information on elevating privileges, see Elevated privilege roles.
    3. [スクリプトの実行] (サーバーで実行される JavaScript) テキストフィールドに次のスクリプトを入力し、TABLE_NAME を識別されたレコードを含むテーブルの名前で置き換え、SYS_ID をステップ 1 でコピーしたレコードの sys_id で置き換えます。
      var gr = new GlideRecord('TABLE_NAME');
      gr.get('SYS_ID');
      gs.eventQueue("text_index", gr, '[TABLE_NAME]','update','text_index');
    4. [スクリプトを実行] を選択します。
      このスクリプトは、text_index キュー内に指定されたテーブルの text_index 更新イベントを作成します。
    5. 移動先 すべて > システムポリシー > イベント > イベントログ 新しい text_index 更新イベントのステータスが [ 処理済み] に変わるまで待機します。
      新しいイベントを見つけるには、[名前][は次の値を含む][text_index] フィルターを適用し、イベントリストビューを 作成日時で降順 (z ~ a) に並べ替えます。

    タスクの結果

    指定されたテーブル内の指定されたレコードのテキストインデックスが更新されます。

    次のタスク

    サンプル検索を繰り返します。この検索で識別されたレコードが返された場合は、そのレコードを含むテーブル全体のテキストインデックスを更新することができます。詳細については、「テーブルのテキストインデックスの再生成」を参照してください。