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

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

    始める前に

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

    識別されたテーブルは、インデックス作成と検索用にすでに構成されている必要があります。この構成プロセスの詳細については、「 インデックス作成と検索のためのテーブルの構成」を参照してください。

    必要なロール:admin
    注:
    glide.script_processor.admin システムプロパティの値がデフォルト値から変更されている場合は、そのプロパティ値で指定されたロールが必要です。このプロパティ値とその作用の詳細については、「Restrict access to background script [Updated in Security Center 1.3 and 2.0]」を参照してください。

    このタスクについて

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

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

    手順

    1. コンテキストメニューから [sys_id のコピー] を選択して、識別されたレコードの sys_id をコピーします。
    2. 次のように移動する。 All (すべて) > システム定義 > スクリプト - バックグラウンド.
      注:
      glide.script_processor.admin システムプロパティの値が security_admin に設定されている場合、このモジュールにアクセスするには、その特権ロールに昇格する必要があります。特権への昇格方法の詳細については、「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. 次のように移動する。 All (すべて) > システムポリシー > イベント > イベントログ をクリックし、新しいtext_index更新イベントのステータスが [処理済み] に変わるまで待ちます。
      新しいイベントを見つけるには、[名前][は次の値を含む][text_index] フィルターを適用し、イベントリストビューを 作成日時で降順 (z ~ a) に並べ替えます。

    タスクの結果

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

    次のタスク

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