스크립트로 작성된 사후 프로세서 검색 양식

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 05일
  • 읽기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를 누릅니다.