「検索スクリプト付きポストプロセッサー」フォーム

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:5分
  • 「検索スクリプト付きポストプロセッサー」フォームには、AI 検索の検索アプリケーション構成で定義された後処理スクリプトに関する情報が含まれています。検索スクリプト付きポストプロセッサーを作成または変更する場合は、このフォームを使用します。

    検索スクリプト付きポストプロセッサーの作成または編集の詳細については、「AI 検索 アプリケーション構成で検索スクリプト付きポストプロセッサーを使用」を参照してください。

    表 : 1. 「検索スクリプト付きポストプロセッサー」フォーム
    フィールド 説明
    アクティブ 検索スクリプトポストプロセッサーを有効にするオプション
    名前 検索スクリプトポストプロセッサーの名前
    アプリケーション 検索スクリプトポストプロセッサーのアプリケーションスコープ。このフィールドは自動的に設定されます。
    タイプ

    検索スクリプトポストプロセッサーが動作するレコードのタイプ

    有効な値:
    • Genius Result:スクリプトは Genius 結果回答レコードで動作します。
    • Search Result:スクリプトは検索結果レコードで動作します。
    後処理スクリプト

    レコードオブジェクトをパラメーターとして受け取るサーバー側スクリプト関数。検索スクリプト付きポストプロセッサーが検索アプリケーション構成にリンクされている場合、検索結果にはこのスクリプト関数のレコードオブジェクトに加えられた変更が反映されます。

    たとえば、この後処理スクリプト関数は、kb_knowledge テーブルの検索結果に作用して、sys_updated_on 日付フィールドの値を人間が判読できる形式に変換します。
    function process(record) {
    
        var transformableTables = ['kb_knowledge'];
        var transformableDateFields = ['sys_updated_on'];
    
        var table = record.getTable();
    
        // Terminate early if possible, to avoid unnecessary overhead
        if (transformableTables.indexOf(table) === -1)
            return;
    
        function transformToHumanFriendlyDate(rawDate) {
            // Time gaps in ms
            var MINUTE_GAP = 60000;
            var HOUR_GAP = 3600000;
            var DAY_GAP = 86400000;
            var WEEK_GAP = 604800000;
            var MONTH_GAP = 2592000000;
            var YEAR_GAP = 31536000000;
    
            var gap = new Date().getTime() - rawDate;
            if (gap < MINUTE_GAP) {
                return gs.getMessage('Just Now');
            } else if (gap > MINUTE_GAP && gap < 2 * MINUTE_GAP) {
                return gs.getMessage('1 minute ago');
            } else if (gap < HOUR_GAP) {
                return gs.getMessage('{0} minutes ago', '' + Math.floor(gap / MINUTE_GAP));
            } else if (gap > HOUR_GAP && gap < 2 * HOUR_GAP) {
                return gs.getMessage('1 hour ago');
            } else if (gap < DAY_GAP) {
                return gs.getMessage('{0} hours ago', '' + Math.floor(gap / HOUR_GAP));
            } else if (gap > DAY_GAP && gap < 2 * DAY_GAP) {
                return gs.getMessage('1 day ago');
            } else if (gap < WEEK_GAP) {
                return gs.getMessage('{0} days ago', '' + Math.floor(gap / DAY_GAP));
            } else if (gap > WEEK_GAP && gap < 2 * WEEK_GAP) {
                return gs.getMessage('1 week ago');
            } else if (gap < MONTH_GAP) {
                return gs.getMessage('{0} weeks ago', '' + Math.floor(gap / WEEK_GAP));
            } else if (gap > MONTH_GAP && gap < 2 * MONTH_GAP) {
                return gs.getMessage('1 month ago');
            } else if (gap < YEAR_GAP) {
                return gs.getMessage('{0} months ago', '' + Math.floor(gap / MONTH_GAP));
            } else if (gap > YEAR_GAP && gap < 2 * YEAR_GAP) {
                return gs.getMessage('1 year ago');
            } else {
                return gs.getMessage('{0} years ago', '' + Math.floor(gap / YEAR_GAP));
            }
        }
    
        for (var i = 0; i < transformableDateFields.length; i++) {
            var fieldName = transformableDateFields[i];
            var updatedDateField = record.getField(fieldName);
            if (updatedDateField !== null) {
                var updatedDateRaw = updatedDateField.getValue();
                if (updatedDateRaw != null) {
                    var humanFriendlyDate = transformToHumanFriendlyDate(updatedDateRaw);
                    updatedDateField.setDisplayValue(humanFriendlyDate);
                }
            }
        }
    }
    注:
    UI には、後処理スクリプト関数で使用可能な API メソッドの概要が表示されます。
    既存のポストプロセッサースクリプトからコードをコピーして、独自のスクリプト関数の開始点として使用できます。既存のポストプロセッサースクリプトにアクセスするには、次の手順に従って、検索スクリプト付きポストプロセッサー [sys_search_scripted_processor] テーブルをリストビューで開きます。
    1. [すべて] を選択します。
    2. [フィルター] フィールドに、sys_search_scripted_processor.list と入力します。
    3. Enter を押します。