로봇은 필터를 사용하여 어떤 자원을 처리할지 그리고 이를 어떻게 처리할지를 결정합니다. 로봇이 자원 자체와 자원에 대한 참조를 찾으면 각 자원에 필터를 적용합니다. 필터는 자원을 열거하고 검색 서버 데이터베이스에 저장할 자원 설명을 생성할지 여부를 결정합니다.
로봇은 하나 이상의 시작 위치 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를 참조하십시오.