検索サーバでの初期ロードの実行およびインデックスとデータのリフレッシュ

この記事には、以下のトピックが含まれています。
casm173
この記事には、以下のトピックが含まれています。
オブジェクトの設定
検索サーバで初期ロードを実行するか、インデックスとデータをリフレッシュする前に、ロードまたはリフレッシュするオブジェクトを設定できます。 現在、検索では以下のオブジェクトをサポートしています。
  • cnt
    (ユーザ)
  • kd
    (ナレッジ ドキュメント)
  • nr
    (設定項目)
  • cr
    (インシデントおよびリクエスト)
  • kdlinks
    (推奨される解決策)
  • pcat
    (カテゴリ)
  • service_offering
  • service_request
デフォルトで、
dataload_limit
は 1 年に設定されています。 このパラメータを使用して、初期ロード データの期間(年数)を制限できます。
デフォルトでは、これらすべてのオブジェクトが設定されます。
検索で現在サポートされている 8 つのオブジェクト以外に、新規またはカスタムのオブジェクトを追加することはできません。
以下の手順に従います。
  1. 管理者は、検索サーバにログインし、
    <es_install>\config
    フォルダに移動し、
    config.yml
    ファイルを編集します。
  2. sdm_index プロパティで、設定しないオブジェクトを削除します。
    • cnt
    • kd
    • nr
    • cr
    • kdlinks
    • pcat
    たとえば、ユーザー(cnt)およびチケット(cr)に対してのみ初期ロードを実行する場合は、以下の方法で
    sdm_index
    の値を定義します。
    objects:
    sdm_index: cnt, cr
    #Limit the initial load to number of years
    dataload_limit: 1y
  3. catalog_index プロパティで、設定しないオブジェクトを削除します。
    • serive_offering
    • service_request
  4. デフォルトで、
    dataload_limit
    は 1 年に設定されています。 このパラメータを使用して、初期ロード データの期間(年数)を制限できます。
    dataload_limit: 1y
  5. ファイルを保存して閉じ、初期ロードを実行します。
データの検証
データを検証するには、MDB データベースに対して以下のクエリを実行します。
  • Oracle
    select * from usm_offering where (date_available <= to_date('1901-12-13','yyyy-mm-dd')
    or date_available >= to_date('2038-01-19','yyyy-mm-dd'))
    or (date_unavailable <= to_date('1901-12-13','yyyy-mm-dd')
    or date_unavailable >= to_date('2038-01-19','yyyy-mm-dd'))
    or (date_cancelled <= to_date('1901-12-13','yyyy-mm-dd')
    or date_cancelled >= to_date('2038-01-19','yyyy-mm-dd'))
  • SQL
    select * from usm_offering where (date_available <= CONVERT(DATETIME, '1901-12-13', 102)
    or date_available >= CONVERT(DATETIME, '2038-01-19', 102))
    or (date_unavailable <= CONVERT(DATETIME, '1901-12-13', 102)
    or date_unavailable >= CONVERT(DATETIME, '2038-01-19', 102))
    or (date_cancelled <= CONVERT(DATETIME, '1901-12-13', 102)
    or date_cancelled >= CONVERT(DATETIME, '2038-01-19', 102))
    クエリで結果が返された場合は、データを更新してインデックスの再構築を実行することをお勧めします。
検索サーバでの初期ロードの実行
初期ロードは、インストーラを使用して検索サーバをインストールするときに、通常実行されるアクティビティです。 初期ロードにより、
xFlow インターフェース
での検索に使用される CA SDM および CA Service Catalog データベースからインポートされたインデックスおよびデータを使用して、検索サーバが準備されます。
CA SDM サーバのパフォーマンスに影響するため、オフピークの時間帯に初期ロード タスクを実行することをお勧めします。
インストール後に初期ロードのアクションを実行する場合は、オペレーティング システムに基づいて、いずれかのファイルを実行します。
  • $ES_HOME/search/bin/pdm_es_initial_load.bat (Windows)
  • $ES_HOME/search/bin/pdm_es_initial_load.sh (Linux)
このファイルによってインデックスが作成されて、検索サーバにデータがロードされます。
コマンド プロンプトからファイルを実行するときは、以下のオプションを使用できます。
  • $ES_HOME/search/bin/pdm_es_initial_load.bat [v, V] [h, help] (Windows)
  • $ES_HOME/search/bin/pdm_es_initial_load.sh [v, V] [h, help] (Linux)
各項目は以下のとおりです。
v, V
: このオプションは、データ ロードのバージョンを表示します。 バッチ ファイルでは、任意のオプションを使用できます。
h, help
: このオプションは、バッチ ファイルのヘルプを表示します。 バッチ ファイルでは、任意のオプションを使用できます。
Windows 上で特定のインデックスの初期ロードを実行するには、
$ES_HOME/search/bin/pdm_es_initial_load.bat index=<index_name>
としてコマンドを実行します。
たとえば、
sdm_index
の初期ロードを実行するには、
$ES_HOME/search/bin/pdm_es_initial_load.bat index=sdm_index
としてコマンドを実行します。
検索サーバでのインデックスとデータのリフレッシュ
インデックスおよびデータをリフレッシュする一般的なシナリオ
  • ユーザ、アセット、ナレッジ ベース、またはチケット(インシデントおよびリクエスト)のデータに対して
    pdm_load
    コマンドを実行する。
  • 場所やアセット クラス名の変更など、依存オブジェクトに行われた変更をリフレッシュする。
  • テナントを有効または無効にする。
共通インストーラから検索サーバの詳細を設定するときに初期ロードの実行を選択した場合、デフォルトで pdm_es_rebuild が実行されます。検索サーバの詳細を設定するときに初期ロードをオフにした場合は、
pdm_es_rebuild
コマンドを手動で実行する必要があります。
  • $ES_HOME/search/bin/pdm_es_rebuild_index.bat (Windows)
  • $ES_HOME/search/bin/pdm_es_rebuild_index.sh (Linux)
コマンド プロンプトからバッチ ファイルを実行するときは、以下のオプションを使用できます。
  • $ES_HOME/search/bin/pdm_es_rebuild_index.bat [v, V] [h, help] (Windows)
  • $ES_HOME/search/bin/pdm_es_rebuild_index.sh [v, V] [h, help] (Linux)
各項目は以下のとおりです。
v, V
: ファイルでは、任意のオプションを使用できます。 このオプションは、データ ロードのバージョンを表示します。
h, help
: ファイルでは、任意のオプションを使用できます。 このオプションは、バッチ ファイルのヘルプを表示します。
Windows 上で特定のインデックスをリフレッシュするには、
$ES_HOME/search/bin/pdm_es_rebuild_index.bat index
=<index_name>
としてコマンドを実行します。
たとえば、
catalog_index
インデックスをリフレッシュするには、
$ES_HOME/search/bin/pdm_es_rebuild_index.bat index=catalog_index
としてコマンドを実行します。
ローカルの特定の提供サービスをロードするには、
$ES_HOME/search/bin/pdm_es_rebuild_index locale=local_name
としてコマンドを実行します。
たとえば、日本語の提供サービス データをロードするには、
$ES_HOME/search/bin/pdm_es_rebuild_index locale=ja_JP
としてコマンドを実行します。
検索サーバのコマンド バーでのスマート ワードの更新
CA SDM で作成されたスマート ワードは、検索サーバで自動的に更新されません。 そのため、コマンド バーに新しいスマート ワードを入力しても、検索サーバが最新のスマート ワードで更新されないため、関連するカテゴリおよびテンプレートは表示されません。
: 検索サーバでスマート ワードと、関連するカテゴリおよびテンプレートを最新の状態に維持するために、特定の間隔でインデックス再作成をスケジュールすることをお勧めします。
Windows でのリフレッシュのスケジュール
この手順の例では、毎週 1 回リフレッシュをスケジュールしています。
以下の手順に従います。
  1. CA Search Server
    の[
    スタート
    ]メニューから、
    Windows タスク スケジューラ
    を開きます。
  2. たとえば Windows Server 2012 で、[
    コントロール パネル
    ]-[
    システムとセキュリティ
    ]-[
    管理ツール
    ]-[
    タスク スケジューラ
    ]に移動します。
  3. タスクの作成
    ]をクリックします。
  4. 全般
    ]タブで、タスクの名前を入力します。
    • ユーザーがログオンしているかどうかにかかわらず実行する
      ]のチェック ボックスをオンにします。
  5. 操作
    ]タブに移動し、[
    新規
    ]をクリックします。
    • 操作
      ]フィールドで、[
      プログラムの開始
      ]を選択します。
    • プログラム/スクリプト
      ]フィールドに、
      pdm_es_rebuild_index.bat index=sdm_autocat_index
      として実行スクリプト名を入力します。
    • 開始(オプション)
      ]フィールドで、
      pdm_es_rebuild_index.bat index=sdm_autocat_index
      スクリプトのルート パスを設定し、[
      OK
      ]をクリックします。
      例: C:\es\bin\
  6. トリガー
    ]タブに移動し、[
    新規
    ]をクリックします。
    • 設定
      ]フィールドで、[
      毎週
      ]を選択します。
    • 開始
      ]フィールドで、[
      午前 12:00:00
      ]を選択します。
    • 間隔
      ]フィールドに「
      1
      」と入力し、リストから 1 日を選択し、[
      OK
      ]をクリックします。
  7. タスクの作成
    ]ダイアログ ボックスで、[
    OK
    ]をクリックします。
    自動分類のインデックスをリフレッシュする Windows タスクのスケジューリングが完了しました。
Windows 以外でのインデックス再作成のスケジュール
cron ジョブを定義して、Linux 上でインデックス再作成をスケジュールします。
前提条件
インデックス再作成スクリプトを実行するユーザに対し、実行権限を有効にします。
以下の手順に従います。
  1. 検索サーバに管理者としてログインします。
  2. <search_server_install>/search/bin
    フォルダに移動します。
  3. cron ジョブ ファイルを開いて編集するには、以下のコマンドを実行します。
    crontab –e
  4. cron ジョブのスケジュールを定義します。
    Crontab job scheduling pattern:
    # Minute Hour Day of Month Month Day of Week Command
    # (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat) path_to_script
    Cron job command examples:
    # execute every minute
    * * * * * cd /root/<search_server>/search/bin && ./pdm_es_rebuild_index.sh index=sdm_autocat_index
    # execute every 5 minutes
    */5 * * * * cd /root/<search_server>/search/bin && ./pdm_es_rebuild_index.sh index=sdm_autocat_index
    # execute every Friday 1AM
    0 1 * * 5 cd /root/<search_server>/search/bin && ./pdm_es_rebuild_index.sh index=sdm_autocat_index
    # execute on workdays 1AM
    0 1 * * 1-5 cd /root/<search_server>/search/bin && ./pdm_es_rebuild_index.sh index=sdm_autocat_index
    # execute 10 past after every hour on the 1st of every month
    10 * 1 * * cd /root/<search_server>/search/bin && ./pdm_es_rebuild_index.sh index=sdm_autocat_index
    スケジューリング パターンに基づく cron ジョブを定義することも、サンプルから cron ジョブを有効にすることもできます。
  5. ファイルを保存して閉じます。
    cron ジョブを表示するには、次のコマンドを実行します:
    $ crontab-l
select * from usm_offering where (date_available <= to_date('1901-12-13','yyyy-mm-dd') or date_available >= to_date('2038-01-19','yyyy-mm-dd')) or (date_unavailable <= to_date('1901-12-13','yyyy-mm-dd') or date_unavailable >= to_date('2038-01-19','yyyy-mm-dd')) or (date_cancelled <= to_date('1901-12-13','yyyy-mm-dd') or date_cancelled >= to_date('2038-01-19','yyyy-mm-dd'))