이 장에서는 Sun JavaTM System Portal Server 검색 서버 로봇 및 해당 구성 파일에 대해 설명합니다. 이번 장은 다음 항목으로 구성됩니다.
검색 서버 로봇은 해당 도메인에서 자원을 확인하고 이에 대해 보고하는 에이전트입니다. 이 작업은열거자 필터와 생성기 필터를 사용하여 수행합니다.
열거자 필터는 네트워크 프로토콜을 사용하여 자원의 위치를 찾습니다. 이 필터는 각 자원을 테스트하고 해당 자원이 적절한 기준을 만족하는 경우 표시합니다. 예를 들어, 열거자 필터는 HTML 파일에서 하이퍼텍스트 링크를 추출하고 이 링크를 사용하여 추가 자원을 찾을 수 있습니다.
생성기 필터는 자원 설명(RD)을 만들어야 하는지 여부를 결정하기 위해 각 자원을 테스트합니다. 자원이 테스트에 통과하면 생성기가 검색 서버 데이터베이스에 저장되는 RD를 만듭니다.
로봇을 관리하는 데 필요한 구성 및 유지 관리 작업은 다음 절에서 설명합니다.
그림 12–1에서는 로봇이 URL 및 그와 연관된 네트워크 자원을 검사하는 방법을 보여줍니다. 열거자 및 생성기가 각 자원을 테스트합니다. 자원이 열거 테스트를 통과하면 로봇이 여기에 추가 URL이 있는지 검사합니다. 자원이 생성기 테스트에 통과하면 로봇이 검색 서버 데이터베이스에 저장되는 자원 설명을 생성합니다.
로봇 구성 파일이 로봇의 작동을 정의합니다. 이러한 파일은 /var/opt/SUNWportal/searchservers/searchserverid/config 디렉토리에 있습니다. 다음 목록에는 각 로봇 구성 파일에 대한 설명이 정리되어 있습니다.
로봇이 생성하는 RD를 분류하는 데 사용하는 규칙이 포함되어 있습니다.
로봇이 사용하는 열거 및 생성 필터를 정의합니다.
로봇의 사이트 정의, 시작 위치 URL, mime 유형을 바탕으로 한 필터링 규칙 및 URL 패턴이 포함되어 있습니다.
로봇에 대한 대부분의 작업 등록 정보를 정의합니다.
검색 서버 관리 인터페이스를 사용하여 대부분의 등록 정보를 설정할 수 있기 때문에 대개는 robot.conf 파일을 편집할 필요가 없습니다. 그러나 고급 사용자는 인터페이스를 통해 설정할 수 없는 등록 정보를 설정하기 위해 이 파일을 직접 편집할 수 있습니다.
로봇은 자원을 찾고 이러한 자원의 설명을 데이터베이스에 추가할지 여부를 결정합니다. 방문할 서버와 이러한 서버에서 인덱싱할 부분을 결정하는 작업을 사이트 정의라고 합니다.
로봇에 대한 사이트 정의는 서버 관리자가 수행해야 하는 가장 중요한 작업 중 하나입니다. 인덱싱이 필요한 모든 서버로 로봇을 전송해야 하지만 데이터베이스를 잠식하여 올바른 정보를 찾기 어렵게 만드는 외부 사이트는 제외시켜야 합니다.
로봇은 인덱싱하도록 선택된 여러 사이트에 대한 링크를 추출하고 해당 링크를 따라 탐색합니다. 시스템 관리자는 다음을 포함한 다양한 설정을 통해 이러한 프로세스를 제어할 수 있습니다.
로봇 시작, 중지 및 일정 계획
로봇이 방문하는 사이트 정의
로봇이 얼마나 적극적으로 검색하는가를 결정하는 탐색 속성
로봇이 필터를 정의하여 인덱싱을 수행하는 자원 유형
로봇이 인덱싱 속성을 정의하여 데이터베이스에 만드는 항목 종류
로봇 탐색 속성에 대한 자세한 내용은 Sun Java System Portal Server 7.1 Technical Reference를 참조하십시오.
필터를 사용하면 자원을 식별하고 필터 정의에 따라 자원 속성을 비교하여 자원을 포함 또는 제외시킬 수 있습니다. 로봇에는 다양한 필터가 사전 정의되며 그 일부는 기본적으로 사용됩니다. 다음 필터가 사전 정의됩니다. 별표가 있는 필터는 기본적으로 사용되는 필터입니다.
아카이브 파일*
오디오 파일*
백업 파일*
이진 파일*
CGI 파일*
이미지 파일*
Java, JavaScript, Style Sheet 파일*
로그 파일*
Lotus Domino 문서
Lotus Domino OpenViews
플러그 인 파일
PowerPoint 파일
개정 제어 파일*
소스 코드 파일*
스프레드시트 파일
시스템 디렉토리(UNIX)
시스템 디렉토리(NT)
임시 파일*
비디오 파일*
새 필터 정의를 만들거나 기존 필터 정의를 수정하거나 필터를 사용 또는 사용 해제할 수 있습니다. 자세한 내용은 자원 필터링 프로세스를 참조하십시오.
로봇에는 두 개의 디버깅 도구 또는 유틸리티가 포함됩니다.
검색 데이터를 최신으로 유지하려면 로봇이 사이트를 정기적으로 검색하여 인덱싱해야 합니다. 로봇 탐색 및 인덱싱 작업에는 프로세싱 자원과 네트워크 대역폭이 많이 소모되므로 사용량이 많지 않은 요일과 시간에 로봇이 실행되도록 계획해야 합니다. 관리자는 관리 콘솔을 사용하여 로봇을 실행할 일정을 설정할 수 있습니다.
이 절에서는 로봇을 관리하는 다음 작업에 대해 설명합니다.
메뉴 표시줄에서 [검색 서버]를 선택합니다. 서버 목록에서 검색 서버를 선택합니다.
메뉴 표시줄에서 [로봇]을 누른 다음 메뉴에서 [상태 및 제어]를 누릅니다.
[시작]을 누릅니다.
psadmin start-robot 명령의 경우 로봇이 탐색에 사용할 사이트가 정의되지 않으면 검색 로봇이 시작되지 않습니다. psadmin start-robot 명령은 시작 위치:0개 정의됨을 표시하여 사용할 수 있는 사이트가 없음을 나타냅니다.
메뉴 표시줄에서 [검색 서버]를 선택한 다음 검색 서버를 선택합니다.
메뉴 표시줄에서 [로봇]을 선택한 다음 [상태 및 제어]를 선택합니다.
[로봇 데이터베이스 지우기]를 누릅니다.
로봇은 자원을 찾고 이러한 자원의 설명을 데이터베이스에 추가할지 여부와 그 방식을 결정합니다. 방문할 서버와 이러한 서버에서 인덱싱할 부분을 결정하는 작업을 사이트 정의라고 합니다.
메뉴 표시줄에서 [검색 서버]를 선택한 다음 검색 서버를 선택합니다.
메뉴 표시줄에서 [로봇]을 선택한 다음 [사이트]를 선택합니다.
[사이트 관리]에서 [새로 만들기]를 누르고 해당 사이트의 구성 속성을 지정합니다.
속성에 대한 자세한 내용은 Sun Java System Portal Server 7.1 Technical Reference의 Sites를 참조하십시오.
[확인]을 누릅니다.
메뉴 표시줄에서 [검색 서버]를 선택한 다음 검색 서버를 선택합니다.
메뉴 표시줄에서 [로봇]을 누른 다음 [사이트]를 누릅니다.
수정할 사이트 이름을 누릅니다.
[사이트 편집] 대화 상자가 나타납니다.
필요에 따라 구성 속성을 수정합니다.
속성에 대한 자세한 내용은 Sun Java System Portal Server 7.1 Technical Reference의 Sites를 참조하십시오.
[확인]을 눌러 변경 사항을 기록합니다.
로봇은 인덱싱하도록 선택된 다양한 사이트로 탐색합니다. 탐색 및 인덱싱 작업 등록 정보를 정의하여 로봇이 사이트를 탐색하는 방법을 제어할 수 있습니다.
메뉴 표시줄에서 [검색 서버]를 선택한 다음 검색 서버를 선택합니다.
메뉴 표시줄에서 [로봇]을 누른 다음 [등록 정보]를 누릅니다.
필요에 따라 로봇 탐색 및 인덱싱 속성을 지정합니다.
속성에 대한 자세한 내용은 Sun Java System Portal Server 7.1 Technical Reference의 Site Probe를 참조하십시오.
[저장]을 누릅니다.
시뮬레이터는 목록에 있는 하나 이상의 사이트에서 로봇 필터링의 시뮬레이션을 부분적으로 수행합니다.
메뉴 표시줄에서 [검색 서버]를 선택한 다음 검색 서버를 선택합니다.
메뉴 표시줄에서 [로봇]을 누른 다음 [유틸리티]를 누릅니다.
[새 URL 추가] 텍스트 상자에 시뮬레이션할 새 사이트의 URL을 입력하고 [추가]를 누릅니다.
[기존 로봇 사이트]에 나열된 기존 사이트에서 시뮬레이터를 실행할 수도 있습니다.
[시뮬레이터 실행]을 누릅니다.
사이트 시험 유틸리티는 DNS 별칭, 서버 리디렉션 및 가상 서버와 같은 정보를 확인합니다.
메뉴 표시줄에서 [검색 서버]를 선택한 다음 검색 서버를 선택합니다.
메뉴 표시줄에서 [로봇]을 누른 다음 [유틸리티]를 누릅니다.
시험할 사이트의 URL을 입력합니다.
(옵션) 시험 결과 DNS 정보를 얻으려면 [사이트 시험]에서 [고급 DNS 정보 표시]를 선택합니다.
[사이트 시험 실행]을 누릅니다.
로봇은 필터를 사용하여 어떤 자원을 처리할지 그리고 이를 어떻게 처리할지를 결정합니다. 로봇이 자원 자체와 자원에 대한 참조를 찾으면 각 자원에 필터를 적용합니다. 필터는 자원을 열거하고 검색 서버 데이터베이스에 저장할 자원 설명을 생성할지 여부를 결정합니다.
로봇은 하나 이상의 시작 위치 URL을 검사하고 필터를 적용한 다음 시작 위치 URL을 열거하여 파생된 URL에 필터를 적용하는 방식으로 작동합니다. 시작 위치 URL은 filterrules.conf 파일에 정의되어 있습니다.
각 열거 및 생성 필터는 필요한 모든 초기화 작업을 수행하고 현재 자원에 대해 비교 테스트를 수행합니다. 각 테스트의 목적은 자원을 허용하거나 거부하려는 것입니다. 또한 각 필터는 종료 단계 동안 정리 작업을 수행합니다.
자원이 허용되는 경우 해당 필터를 통해 계속 테스트를 진행합니다. 결과적으로 로봇이 자원을 열거하여 추가 자원을 찾으려고 시도합니다. 생성기도 이에 대한 자원 설명을 만들 수 있습니다.
자원이 거부되면 이 자원은 받아들여지지 않습니다. 거부된 자원에 대해서는 필터가 더 이상 작업을 수행하지 않습니다.
이러한 작업이 반드시 연결되는 것은 아닙니다. 어떤 자원은 열거되고 어떤 자원은 RD 생성으로 이어집니다. 많은 자원이 열거되는 동시에 RD 생성으로 이어집니다. 예를 들어, 자원이 FTP 디렉토리라면 이 자원에는 일반적으 로그에 대한 RD가 생성되지 않습니다. 그러나 로봇은 FTP 디렉토리에 있는 개별 파일을 열거할 수 있습니다. 다른 문서에 대한 링크가 포함된 HTML 문서는 RD를 생성하면서 링크된 문서에 대한 열거로도 이어질 수 있습니다.
다음 절에서는 필터 프로세스에 대해 설명합니다.
열거 및 생성 필터의 필터링 프로세스는 모두 5단계로 이루어집니다.
설정 – 초기화 작업을 수행합니다. 로봇의 사용 중 한 번만 수행됩니다.
메타데이터 – 자원에 대해 사용할 수 있는 메타데이터를 바탕으로 자원을 필터링합니다. 메타데이터 필터링은 네트워크를 통해 자원을 검색하기 전에 자원당 한 번 발생합니다. 표 12–1은 일반적인 메타데이터 유형의 예입니다.
메타데이터 유형 |
설명 |
예 |
---|---|---|
전체 URL |
자원의 위치 |
http://home.siroe.com/ |
프로토콜 |
URL의 액세스 부분 |
http, ftp, file |
호스트 |
URL의 주소 부분 |
www.siroe.com |
IP 주소 |
호스트의 숫자 버전 |
198.95.249.6 |
경로 |
URL의 경로 부분 |
/index.html |
깊이 |
시작 위치 URL로부터의 링크 수 |
5 |
데이터 – 데이터를 기반으로 자원을 필터링합니다. 데이터는 네트워크를 통해 데이터를 검색한 후 자원당 한 번만 필터링됩니다. 필터링에 사용할 수 있는 데이터는 다음과 같습니다.
content-type
content-length
content-encoding
content-charset
last-modified
expires
열거 – 검사할 다른 자원을 가리키는지 여부를 결정하기 위해 현재 자원을 열거합니다.
생성 – 자원에 대한 자원 설명(RD)을 생성하고 이를 검색 서버 데이터베이스에 저장합니다.
종료 – 필요한 모든 종료 작업을 수행합니다. 이 프로세스는 로봇 사용 중에 한 번만 발생합니다.
filter.conf 파일에 열거와 생성 필터에 대한 정의가 들어 있습니다. 이 파일에는 열거 및 생성 모두에 대한 다수의 필터가 포함될 수 있습니다. 로봇에서 사용하는 필터는 robot.conf 파일의 enumeration-filter 및 generation-filter 등록 정보에서 지정합니다.
필터 정의는헤더, 본문 및 종료 부분으로 잘 정의된 구조를 가집니다. 헤더는 필터의 시작 부분을 식별하고 해당 이름을 선언합니다. 예를 들면 다음과 같습니다.
<Filter name="myFilter"> |
본문은 설정, 테스트, 열거 또는 생성 그리고 종료 중에 필터의 작동을 정의하는 일련의 필터 지시문으로 이루어집니다. 각 지시문은 함수 및 해당하는 경우 함수에 대한 등록 정보를 지정합니다.
종료 부분은 </Filter>로 표시됩니다.
예 12–1은 enumeration1이라는 필터를 보여줍니다.
<Filter name="enumeration1> Setup fn=filterrules-setup config=./config/filterrules.conf # 규칙 처리 MetaData fn=filterrules-process # 유형 및 프로세스 규칙별로 다시 필터링 Data fn=assign-source dst=type src=content-type Data fn=filterrules-process # HTML에서만 열거 수행 Enumerate enable=true fn=enumerate-urls max=1024 type=text/html # 정리 Shutdown fn=filterrules-shutdown </Filter> |
필터 지시문은 RAF(Robot Application Function)를 사용하여 작업을 수행합니다. 필터 지시문의 사용법과 실행의 흐름은 Sun Java System Web Server의 obj.conf 파일에 있는 NSAPI 지시문 및 SAF(Server Application Function)와 유사합니다. NSAPI 및 SAF와 마찬가지로 데이터는 pblocks라고도 하는 등록 정보 블록을 사용하여 저장 및 전송됩니다.
해당 필터링 단계 및 작업에 해당하는 6가지 로봇 지시문 또는 RAF 클래스가 자원 필터링 프로세스에 나와 있습니다.
설정
메타데이터
데이터
열거
생성
종료
각 지시문에는 고유의 로봇 응용 프로그램 함수가 있습니다. 예를 들어, 메타데이터와 데이터 지시문에는 필터링 함수를 사용하고, 열거 지시문에는 열거 함수를 사용하고, 생성 지시문에는 생성 함수를 사용합니다.
내장 RAF와 고유 RAF를 작성하기 위한 지침은 Sun Java System Portal Server 7.1 Developer's Guide에서 설명합니다.
대부분의 경우 관리 콘솔을 사용하여 대부분의 사이트 정의 기반 필터를 만들 수 있습니다. 그런 다음 filter.conf 및 filterrules.conf 파일을 수정하여 필요에 따라 추가로 변경합니다. 이러한 파일은 /var/opt/SUNWportal/searchservers/searchserverid/config 디렉토리에 있습니다.
더 복잡한 등록 정보 집합을 만들려면 로봇에서 사용하는 구성 파일을 편집합니다.
필터를 작성하거나 수정할 때는 다음의 순서에 주의해야 합니다.
지시문의 실행 순서(특히 각 단계에서 사용할 수 있는 정보)
filterrules.conf의 필터 규칙 순서
또한 다음 작업을 수행할 수 있습니다.
robot.conf 파일의 등록 정보 수정
filter.conf 파일의 RAF 수정
고유 RAF 만들기
자세한 내용은 Sun Java System Portal Server 7.1 Developer's Guide를 참조하십시오.
이 절에서는 로봇 필터를 관리하기 위한 다음 작업을 설명합니다.
메뉴 표시줄에서 [검색 서버]를 선택한 다음 검색 서버를 선택합니다.
메뉴 표시줄에서 [로봇]을 선택한 다음 [필터]를 선택합니다.
[새로 만들기]를 누릅니다.
새 로봇 필터 만들기 마법사가 나타납니다.
지침에 따라 지정된 필터를 만듭니다.
텍스트 상자에 필터 이름과 필터 설명을 입력하고 [다음]을 누릅니다.
필터 정의와 동작을 지정하고 [마침]을 누릅니다.
필터 속성에 대한 자세한 내용은 Sun Java System Portal Server 7.1 Technical Reference의 Filters를 참조하십시오.
[닫기]를 눌러 새 필터를 로드합니다.
메뉴 표시줄에서 [검색 서버]를 선택한 다음 검색 서버를 선택합니다.
메뉴 표시줄에서 [로봇]을 선택한 다음 [필터]를 선택합니다.
필터를 선택합니다.
[삭제]를 누릅니다.
표시되는 확인 대화 상자에서 [확인]을 누릅니다.
메뉴 표시줄에서 [검색 서버]를 선택한 다음 검색 서버를 선택합니다.
메뉴 표시줄에서 [로봇]을 선택한 다음 [필터]를 선택합니다.
필터를 선택하고 [편집]을 누릅니다.
[필터 편집] 페이지가 나타납니다.
필요에 따라 구성 속성을 수정합니다.
필터 속성에 대한 자세한 내용은 Sun Java System Portal Server 7.1 Technical Reference의 Filters를 참조하십시오.
[확인]을 누릅니다.
문서는 설정에 정의된 최대 수까지 여러 범주에 할당할 수 있습니다. 분류 규칙에는 흐름 제어 의사 결정이 관련되지 않기 때문에 로봇 필터 규칙보다 단순합니다. 분류 규칙에서 특정 범주를 자원 설명의 일부로 자원에 할당하는 데 사용할 기준을 결정합니다. 분류 규칙은 어떤 조건이 참이면 자원을 <범주>에 할당한다의 형태를 취하는 간단한 조건문입니다.
메뉴 표시줄에서 [검색 서버]를 선택한 다음 검색 서버를 선택합니다.
메뉴 표시줄에서 [로봇]을 선택한 다음 [분류 규칙]을 선택합니다.
[분류 규칙]을 선택하고 [새로 만들기]를 누릅니다.
[새 분류 규칙 만들기] 대화 상자가 나타납니다.
필요에 따라 구성 속성을 지정합니다.
속성에 대한 자세한 내용은 Sun Java System Portal Server 7.1 Technical Reference의 Manage Classification Rules를 참조하십시오.
[확인]을 누릅니다.
메뉴 표시줄에서 [검색 서버]를 선택한 다음 검색 서버를 선택합니다.
메뉴 표시줄에서 [로봇], [분류 규칙]을 차례로 선택합니다.
분류 규칙을 선택하고 [편집]을 누릅니다.
필요에 따라 속성을 수정합니다.
속성에 대한 자세한 내용은 Sun Java System Portal Server 7.1 Technical Reference의 Manage Classification Rules를 참조하십시오.
[확인]을 누릅니다.
대부분의 RAF(Robot Application Function)는 정보 소스를 필요로 하며 대상으로 전송되는 데이터를 생성합니다. 소스는 로봇 내에 정의되며 로봇이 최종적으로 생성하는 자원 설명의 필드와 반드시 관련되는 것은 아닙니다. 한편 대상은 일반적으로 자원 설명 서버의 스키마에 의해 정의되는 자원 설명에 있는 필드 이름입니다.
다음 절에서는 필터링 프로세스의 여러 단계와 해당 단계에서 사용할 수 있는 소스에 대해 설명합니다.
설정 단계에서는 필터가 설정되지만 아직 자원의 URL이나 컨텐트에 대한 정보를 가져올 수 없습니다.
메타데이터 단계에서 로봇은 자원에 대한 URL을 발견하지만 자원의 컨텐트를 다운로드하지는 않습니다. 따라서 filter.conf 파일 등의 다른 소스에서 파생된 데이터와 URL에 대한 정보를 사용할 수 있습니다. 그러나 이 단계에서 자원의 컨텐트에 대한 정보는 사용할 수 없습니다.
표 12–2 메타데이터 단계에서 RAF가 사용할 수 있는 소스
소스 |
설명 |
예 |
---|---|---|
csid |
카탈로그 서버 아이디 |
x-catalog//budgie.siroe.com:8086/alexandria |
depth |
시작 위치로부터 방문한 링크 수 |
10 |
enumeration filter |
열거 필터의 이름 |
enumeration1 |
generation filter |
생성 필터의 이름 |
generation1 |
host |
URL의 호스트 부분 |
home.siroe.com |
IP |
호스트의 숫자 버전 |
198.95.249.6 |
protocol |
URL의 액세스 부분 |
http, https, ftp, file |
path |
URL의 경로 부분 |
/, /index.html, /documents/listing.html |
URL |
전체 URL |
http://developer.siroe.com/docs/manuals/ |
데이터 단계에서 로봇은 URL에서 자원의 컨텐트를 다운로드한 상태이며 설명 및 작성자 등의 컨텐트 관련 데이터에 액세스할 수 있습니다.
자원이 HTML 파일인 경우 로봇은 HTML 헤더에 있는 <META> 태그의 구문을 분석합니다. 결과적으로 <META> 태그에 있는 모든 데이터를 데이터 단계에서 사용할 수 있습니다.
데이터 단계에서 RAF는 메타데이터 단계에서 사용할 수 있는 소스 외에 다음과 같은 소스를 사용할 수 있습니다.
표 12–3 데이터 단계에서 RAF가 사용할 수 있는 소스
소스 |
설명 |
예 |
---|---|---|
content-charset |
자원에서 사용하는 문자 집합 | |
content-encoding |
인코딩 형식 | |
content-length |
자원 크기(바이트) | |
content-type |
자원의 MIME 유형 |
text/html, image/jpeg |
expires |
자원의 만료 날짜 | |
last-modified |
자원이 마지막으로 수정된 날짜 | |
data in <META> tags |
HTML 자원의 헤더에 있는 <META> 태그에서 제공하는 모든 데이터 |
제작자, 설명, 키워드 |
이러한 모든 소스(<META> 태그의 데이터 제외)는 자원을 검색할 때 반환되는 HTTP 응답 헤더에서 파생됩니다.
열거 및 생성 단계에서는 데이터 단계와 동일한 데이터 소스를 사용할 수 있습니다. 자세한 내용은 표 12–3을 참조하십시오.
종료 단계에서 필터는 필터링을 완료하고 종료합니다. 이 단계를 위해 작성된 함수가 데이터 단계와 동일한 데이터 소스를 사용할 수 있어도 일반적으로 종료 기능의 작업은 로봇 종료와 정리 작업으로 제한됩니다.
각 함수에는 enable 등록 정보가 있습니다. 값으로는 true, false, on 또는 off를 지정할 수 있습니다. 관리 콘솔은 이러한 매개 변수를 사용하여 특정 지시문을 설정 또는 해제합니다.
다음 예는 text/html에 열거를 사용하고 text/plain에는 열거를 사용하지 않습니다.
# HTML에서만 열거 수행 Enumerate enable=true fn=enumerate-urls max=1024 type=text/html Enumerate enable=false fn=enumerate-urls-from-text max=1024 type=text/plain |
enable=false 등록 정보나 enable=off 등록 정보를 추가해도 이 줄을 주석 처리하는 것과 같은 효과가 있습니다. 관리 콘솔에서는 주석을 작성하지 않으므로 이러한 등록 정보가 사용됩니다.
이 절에서는 열거 및 생성 필터가 설정 단계에서 사용하는 함수에 대해 설명합니다. 이 함수는 다음 절에서 설명합니다.
filterrules-setup 함수를 사용하는 경우 logtype 로그 파일을 사용합니다. 값으로는 verbose, normal 또는 terse를 지정할 수 있습니다.
이 필터에서 사용할 필터 규칙이 있는 파일의 경로 이름입니다.
Setup fn=filterrules-setup
config="/var/opt/SUNWportal/searchservers/search1/config/filterrules.conf"
setup-regex-cache 함수는 filter-by-regex 및 generate-by-regex 함수에 대한 캐시 크기를 초기화합니다. 이 함수를 사용하여 기본값 32 이외의 숫자를 지정할 수 있습니다.
regex 캐시에 저장할 컴파일된 정규식의 최대 수입니다.
Setup fn=setup-regex-cache cache-size=28
setup-type-by-extension 함수는 파일 확장자를 인식하도록 필터를 구성합니다. 이 함수는 assign-type-by-extension 함수를 사용하기 전에 호출해야 합니다. 등록 정보로 지정된 파일에는 표준 MIME 컨텐트 유형과 파일 확장자 문자열 사이의 매핑이 포함되어야 합니다.
MIME 유형 구성 파일의 이름
Setup fn=setup-type-by-extension
file="/var/opt/SUNWportal/searchservers/search1/config/mime.types"
메타데이터 및 데이터 단계에서 작동하는 필터링 함수는 함수 및 해당 등록 정보에서 지정한 특정 기준에 따라 자원을 허용하거나 거부합니다. 이러한 함수는 filter.conf 파일의 열거 및 생성 필터 모두에 사용할 수 있습니다.
각 filter-by 함수가 비교를 수행한 다음 자원을 허용하거나 거부합니다. 자원을 허용하면 다음 필터링 단계를 계속 진행합니다. 자원을 거부하면 자원이 더 이상의 열거 또는 생성을 위한 기준에 맞지 않으므로 처리가 중지됩니다.
filter-by-exact 함수는 allow/deny 문자열이 정보의 소스와 정확하게 일치하면 자원을 허용하거나 거부합니다. 키워드 all은 어떤 문자열과도 일치합니다.
정보의 소스
문자열을 포함합니다.
다음 예에서는 컨텐트 유형이 text/plain인 모든 자원이 필터링에서 제거됩니다. 나머지 모든 자원은 계속 진행하도록 허용됩니다.
Data fn=filter-by-exact src=type deny=text/plain
filter-by-max 함수는 지정된 정보 소스가 주어진 값보다 작거나 같은 경우에 자원을 허용합니다. 정보 소스가 지정된 값보다 크면 자원을 거부합니다.
이 함수는 필터당 한 번만 호출할 수 있습니다.
filter-by-max 함수는 filter-by-max 함수에서 사용되는 등록 정보를 나열합니다.
정보의 소스: hosts, objects 또는 depth
비교할 값을 지정합니다.
이 예에서는 자원의 content-length가 1024KB보다 작은 경우 자원을 허용합니다.
MetaData fn-filter-by-max src=content-length value=1024
filter-by-md5 함수는 해당 MD5 체크섬 값이 있는 첫 번째 자원만 허용합니다. 이 로봇이 현재 자원의 MD5를 이전 자원에서 발견했다면 현재 자원은 거부됩니다. 이 함수는 동일한 자원이 중복 사용되거나 단일 자원에서 여러 URL을 사용하지 않도록 해줍니다.
데이터 단계 이후에서만 이 함수를 호출할 수 있습니다. 이 함수는 필터당 한 번만 호출할 수 있습니다. 또한 이 필터는 filter-by-md5를 호출하기 전에 generate-md5 함수를 호출하여 MD5 체크섬을 생성해야 합니다.
없음
다음 예에서는 먼저 체크섬을 생성하고 이를 바탕으로 필터링하여 MD5 체크섬을 처리하는 일반적인 방법을 보여줍니다.
Data fn=generate-md5
Data fn=filter-by-md5
filter-by-prefix 함수는 해당 정보 소스가 지정된 접두어 문자열로 시작되는 경우 자원을 허용하거나 거부합니다. 자원이 완전히 일치할 필요는 없습니다. 키워드 all은 어떤 문자열과도 일치합니다.
정보의 소스
접두어 비교에 사용할 문자열을 포함합니다.
다음 예는 text/html 및 text/plain을 포함하여 content-type이 텍스트 유형인 자원을 허용합니다.
MetaData fn=filter-by-prefix src=type allow=text
filter-by-regex 함수는 정규식 패턴 매칭을 지원합니다. 이 함수는 해당 정규식과 일치하는 자원을 허용합니다. 지원되는 정규식 구문은 POSIX.1 사양에서 정의됩니다. 정규식 \\\\*는 어떤 것과도 일치합니다.
정보의 소스
정규식 문자열을 포함합니다.
다음 예에서는 .gov 도메인에 있는 사이트의 모든 자원을 거부합니다.
MetaData fn=filter-by-regex src=host deny=\\\\*.gov
filterrules-process 함수는 filterrules.conf 파일에 있는 사이트 정의 및 필터 정의를 처리합니다.
없음
MetaData fn=filterrules-process
필터링 중에 지원 함수를 사용하면 자원에 대한 정보를 조작하거나 생성할 수 있습니다. 그런 다음 로봇은 필터링 함수를 호출하여 자원을 처리할 수 있습니다. 이 함수는 filter.conf 파일의 열거 및 생성 필터 모두에 사용할 수 있습니다.
assign-source 함수는 해당 정보 소스에 새로운 값을 할당합니다. 이 함수는 필터링 과정에서 편집을 허용합니다. 또한 명시적인 새 값을 할당하거나 다른 정보 소스의 값을 복사할 수 있습니다.
값을 변경할 소스의 이름
명시적인 값을 지정합니다.
dst로 복사할 정보 소스
value 등록 정보 또는 src 등록 정보를 지정해야 하며 둘 모두 지정할 수는 없습니다.
Data fn=assign-source dst=type src=content-type
assign-type-by-extension 함수는 자원의 파일 이름을 사용하여 그 유형을 결정하고 추가적 처리를 위해 이 유형을 자원에 할당합니다.
setup-type-by-extension 함수를 설정 중에 호출해야 assign-type-by-extension을 사용할 수 있습니다.
비교할 파일 이름의 소스입니다. 소스를 지정하지 않으면 기본값은 자원의 경로가 됩니다.
MetaData fn=assign-type-by-extension
clear-source 함수는 지정된 데이터 소스를 삭제합니다. 일반적으로 이 함수는 수행할 필요가 없습니다. assign-source 함수를 사용하면 소스를 만들거나 교체할 수 있습니다.
삭제할 소스 이름
다음 예에서는 경로 소스를 삭제합니다.
MetaData fn=clear-source src=path
convert-to-html 함수는 자원 유형이 지정된 MIME 유형과 일치하는 경우 추가 처리를 위해 현재 자원을 HTML 파일로 변환합니다. 변환 필터는 변환 중인 파일 유형을 자동으로 감지합니다.
변환할 MIME 유형
다음 순서로 함수를 호출하면 필터가 모든 Adobe Acrobat PDF 파일, Microsoft RTF 파일 및 FrameMaker MIF 파일 그리고 파일을 전달하는 서버에서 유형을 지정하지 않은 모든 파일을 HTML로 변환합니다.
Data fn=convert-to-html type=application/pdf
Data fn=convert-to-html type=application/rtf
Data fn=convert-to-html type=application/x-mif
Data fn=convert-to-html type=unknown
copy-attribute 함수는 자원 설명의 한 필드에서 다른 필드로 값을 복사합니다.
복사해 올 자원 설명의 필드
소스를 복사해 넣을 자원 설명의 항목
복사할 소스의 최대 길이
잘려진 텍스트를 단어의 일부분으로 남겨 두지 않고 수정할지 여부를 나타내는 부울 등록 정보. 이 등록 정보는 기본적으로 false입니다.
Generate fn=copy-attribute \\
src=partial-text dst=description truncate=200 clean=true
generate-by-exact 함수는 지정된 값의 소스를 생성하지만 기존 소스가 또 다른 값과 정확히 일치하는 경우에만 그렇습니다.
생성할 소스의 이름
dst를 할당할 값
일치 대상으로 사용할 소스
다음 예는 호스트가 www.siroe.com인 경우 분류를 siroe로 설정합니다.
Generate fn="generate-by-exact" match="www.siroe.com:80" src="host" value="Siroe" dst="classification"
이 generate-by-prefix 함수는 기존 소스의 접두어가 다른 값과 일치하는 경우 지정된 값의 소스를 생성합니다.
생성할 소스의 이름
dst를 할당할 값
일치 대상으로 사용할 소스
src와 비교할 값
다음 예에서는 프로토콜 접두어가 HTTP인 경우 분류를 Compass로 설정합니다.
Generate fn="generate-by-prefix" match="http" src="protocol" value="World Wide Web" dst="classification"
generate-by-regex 함수는 기존 소스가 정규식과 일치하는 경우 지정된 값의 소스를 생성합니다.
생성할 소스의 이름
dst를 할당할 값
일치 대상으로 사용할 소스
src와 비교할 정규식 문자열
다음 예는 호스트 이름이 정규식 *.siroe.com과 일치하는 경우 분류를 siroe로 설정합니다. 예를 들어 developer.siroe.com과 home.siroe.com에 있는 자원은 모두 Siroe로 분류됩니다.
Generate fn="generate-by-regex" match="\\\\*.siroe.com" src="host" value="Siroe" dst="classification"
generate-md5 함수는 MD5 체크섬을 생성하고 이를 자원에 추가합니다. 그런 다음 filter-by-md5 함수를 사용하여 중복된 MD5 체크섬을 가진 자원을 거부할 수 있습니다.
없음
Data fn=generate-md5
generate-rd-expires 함수는 만료 날짜를 생성하고 이를 지정된 소스에 추가합니다. 이 함수는 HTTP 헤더와 HTML <META> 태그와 같은 메타데이터를 사용하여 자원에서 만료 날짜 데이터를 얻습니다. 데이터가 없으면 이 함수는 현재 날짜로부터 3개월 후를 만료 날짜로 생성합니다.
소스의 이름. 생략하는 경우 소스 기본값은 rd-expires입니다.
Generate fn=generate-rd-expires
generate-rd-last-modified 함수는 현재 시간을 지정된 소스에 추가합니다.
소스의 이름. 생략하는 경우 소스 기본값은 rd-last-modified입니다.
Generate fn=generate-last-modified
rename-attribute 함수는 자원 설명의 필드 이름을 변경합니다. 이 함수는 extract-html-meta 함수를 사용하여 <META> 태그에서 필드로 정보를 복사하고 해당 필드의 이름을 변경할 때 가장 유용합니다.
한 이름에서 다른 이름으로의 매핑을 포함하는 문자열
다음 예에서는 속성 이름을 author에서 author-name으로 변경합니다.
Generate fn=rename-attribute src="author->author-name"
다음 함수는 열거 단계에서 작동합니다. 이러한 함수는 로봇이 주어진 자원에서 추가 자원 검색을 위한 시작 위치로 사용할 링크를 수집할 것인지 여부와 그 방법을 제어합니다.
enumerate-urls 함수는 자원을 검색하고 하이퍼텍스트 링크에서 발견된 모든 URL을 열거합니다. 이 결과는 추가적인 자원 검색을 위해 사용됩니다. content-type을 지정하여 열거할 URL 유형을 제한할 수 있습니다.
주어진 자원에서 작성할 최대 URL 수. 기본값은 1024입니다.
지정된 content-type이 있는 URL로 열거를 제한하는 Content-type입니다. type은 생략 가능한 등록 정보입니다. 생략하는 경우 이 함수는 모든 URL을 열거합니다.
다음 예에서는 HTML URL만 최대 1024개까지 열거합니다.
Enumerate fn=enumerate-urls type=text/html
enumerate-urls-from-text 함수는 텍스트 자원을 검색하여URL:.* 정규식과 일치하는 문자열을 찾습니다. 이 함수를 사용하면 로봇이 이러한 문자열에서 URL을 열거하고 추가 자원 설명을 생성할 수 있습니다.
주어진 자원에서 작성할 최대 URL 수. max를 생략한 경우 기본값은 1024입니다.
Enumerate fn=enumerate-urls-from-text
생성 함수는 필터링의 생성 단계에 사용되며,자원 설명에 포함될 정보를 만들 수 있습니다. 일반적으로 생성 함수는 자원 자체에서 정보를 추출하거나 자원의 메타데이터에서 정보를 복사합니다.
extract-full-text 함수는 자원의 전체 텍스트를 추출하고 이를 자원 설명에 추가합니다.
extract-full-text 함수를 사용할 때는 주의해야 합니다. 이 함수는 자원 설명의 크기를 지나치게 증가시키므로 데이터베이스를 팽창시켜 네트워크 대역폭에 전체적으로 부정적인 영향을 줄 수 있습니다.
Generate fn=extract-full-text
자원에서 추출할 최대 문자 수
전체 텍스트를 받을 스키마 항목의 이름
extract-html-meta 함수는 HTML 파일에서 모든 <META> 또는 <TITLE> 정보를 추출하여 자원 설명에 추가합니다. 생성될 URL 유형을 제한하도록 content-type을 지정할 수 있습니다.
추출할 최대 바이트 수
생략 가능한 등록 정보. 생략하는 경우 모든 URL이 생성됩니다.
Generate fn=extract-html-meta truncate=255 type=text/html
extract-html-text 함수는 HTML 파일에서 HTML 태그를 제외하고 텍스트의 처음 몇 문자를 추출하여 자원 설명에 추가합니다. 이 함수는 문서 텍스트의 처음 부분을 RD에 포함하도록 허용합니다. 생성될 URL 유형을 제한하도록 content-type을 지정할 수 있습니다.
추출할 최대 바이트 수
문서에 있는 HTML 헤더를 무시하려면 true로 설정합니다.
생략 가능한 등록 정보. 생략하는 경우 모든 URL이 생성됩니다.
Generate fn=extract-html-text truncate=255 type=text/html skip-headings=true
extract-html-toc 함수는 HTML 헤더에서 목차를 추출하여 자원 설명에 추가합니다.
추출할 최대 바이트 수
추출할 최대 HTML 헤더 수준. 이 등록 정보는 목차의 깊이를 제어합니다.
Generate fn=extract-html-toc truncate=255 level=3
extract-source 함수는 주어진 소스에서 지정된 값을 추출하여 자원 설명에 추가합니다.
소스 이름을 나열합니다. -> 연산자를 사용하여 RD 속성에 새 이름을 정의할 수 있습니다. 예를 들어 type->content-type은 이름이 type이라는 소스의 값을 가져다 content-type이라는 속성 아래의 RD에 저장합니다.
Generate fn=extract-source src="md5,depth,rd-expires,rd-last-modified"
harvest-summarizer 함수는 자원에 대해 결과 요약 프로그램을 실행하여 그 결과를 자원 설명에 추가합니다.
결과 요약 프로그램을 실행하려면 로봇을 실행하기 전에 해당 path에 $HARVEST_HOME/lib/gatherer가 있어야 합니다.
요약 프로그램 이름
Generate fn-harvest-summarizer summarizer=HTML.sum
filterrules-shutdown 함수는 종료 단계에서 열거 및 생성 함수가 사용할 수 있습니다.
규칙이 실행된 후에 filterrules-shutdown 함수가 정리와 종료 처리를 담당합니다.
없음
Shutdown fn=filterrules-shutdown
robot.conf 파일은 로봇에게 filter.conf의 적합한 필터를 가리켜주는 등 로봇에 대한 많은 옵션을 정의합니다. 이전 버전과의 역 호환성을 위해 robot.conf에 시작 위치 URL을 포함할 수도 있습니다.
관리 콘솔을 사용하여 대부분의 등록 정보를 설정할 수 있기 때문에 대개는 robot.conf 파일을 편집할 필요가 없습니다. 그러나 고급 사용자는 관리 콘솔을 통해 설정할 수 없는 등록 정보를 설정하기 위해 이 파일을 직접 편집할 수 있습니다. 이 파일의 예를 보려면 예제 robot.conf 파일을 참조하십시오.
표 12–4에는 robot.conf 파일에서 변경할 수 있는 등록 정보가 정리되어 있습니다.
표 12–4 사용자가 수정 가능한 등록 정보
이 절에서는 예제 robot.conf 파일에 대해 설명합니다. 이 예제에서 주석 처리되어 있는 모든 등록 정보는 기본값을 사용합니다. 첫 번째 등록 정보인 csid는 이 파일을 사용하는 검색 서버 인스턴스를 나타냅니다. 이 등록 정보의 값을 변경하지 마십시오. 이 파일에 있는 등록 정보의 정의에 대해서는 수정 가능한 등록 정보를 참조하십시오.
이 예제 파일에는 검색 서버에서 사용하는 등록 정보 중 수정하지 않아야 하는 몇 가지 등록 정보가 포함되어 있습니다. csid 등록 정보를 한 예로 들 수 있습니다.
<Process csid="x-catalog://budgie.siroe.com:80/jack" \\ auto-proxy="http://sesta.varrius.com:80/" auto_serv="http://sesta.varrius.com:80/" command-port=21445 convert-timeout=600 depth="-1" # email="user@domain" enable-ip=true enumeration-filter="enumeration-default" generation-filter="generation-default" index-after-ngenerated=30 loglevel=2 max-concurrent=8 site-max-concurrent=2 onCompletion=idle password=boots proxy-loc=server proxy-type=auto robot-state-dir="/var/opt/SUNWportal/searchservers/search1/robot" \\ ps/robot" server-delay=1 smart-host-heuristics=true tmpdir="/var/opt/SUNWportal/searchservers/search1/tmp" user-agent="iPlanetRobot/4.0" username=jack </Process> |