제공 : 한빛 네트워크
저자 : Bernard Farrell
역자 : 김인희
원문 : Creating Google Custom Search Engines
XML을 사용해 CSE 설정하기
자세한 설명을 하기에 앞서, 한가지 주의 사항이 있다. XML 파일을 사용해서 검색 엔진의 설정을 변경할 때 검색 엔진이 간혹 멈추는 경우가 있다. 그런 경우를 대비하여, 복구시 사용할 XML 원본 파일을 안전한 곳에 미리 저장할 필요가 있다.
사용자 검색 엔진의 모든 설정 값들을 XML 포맷으로 지정할 수 있다. 이 방식에 익숙해지는 가장 쉬운 방법은 현재 자신의 검색 엔진에 있는 XML 포맷 설정 값들을 확인하는 것이다.
검색 엔진 제어판의 고급 탭(Advanced tab)을 클릭하면, 두 가지 다른 버전의 정보를 내려 받을 수 있다. 환경변수(Context) 정보에는 검색 엔진의 전역 설정 값들이 있는데, 검색 엔진을 처음 만들 때 넣었던 설정 값들과 검색 엔진에 기여할 지원자들을 받을지에 대한 여부 또는 결과를 보여줄 때 어떤 색을 사용할 지가 포함되어 있다. 주석(Annotations) 정보는 검색 엔진의 심장부이다. 이 정보는 검색 결과에 어떤 페이지와 사이트를 포함시켜야 하는지를 알려주고, 이들 데이터를 어떻게 처리해야 하는지도 나타낸다.
먼저, 고급 탭 페이지의 맨 밑에 있는 ‘XML 포맷 다운로드(Download in XML Format)’ 버튼을 클릭해서 현재 환경변수 정보를 얻도록 하자. 파일을 다운 받는 것이 아니라 다른 브라우저나 탭을 열어 XML 포맷의 환경변수를 출력한다. 브라우저에서 출력된 XML을
파일 로 저장할 수 있다.
처음 환경변수 설정시에 XML의
섹션의 값들이 중요한 역할을 한다. XML을 사용해서 검색 엔진에 저장된 사이트를 변경하고자 할 때, 이 섹션의 노드의 이름(name) 값을 바꾸어야 한다.
다음으로 주석(Annotations) 섹션에 있는 ‘XML 포맷 다운로드(Download in XML)’를 클릭해서 검색 엔진의 데이터(주석)을 다운로드 하자. Download URL 을 방문해서 같은 데이터를 얻을 수도 있다. 역시 브라우저에 출력된 XML 데이터를 파일 로 저장 가능하다
...
구글에 하나 이상의 사용자 검색 엔진이 등록되어 있다면, 다운로드 받은 XML에는 모든 검색 엔진의 주석 정보가 포함되어 있을 것이다. 이 XML은 각 엔진에 포함된 최신 사이트를 기준으로 정리가 되어있다.
이런 이유로, 환경변수 정보에 있는 레이블(label) 설정이 중요하다. 각 검색 엔진의 노드에 속한 노드는 FILTER나 ELIMINATE 두 가지 모드 중에 하나를 명시한다.
텍스트 에디터를 사용해서 검색 엔진의 노드를 선택할 수도 있지만, 노드수가 50개 이상이 되면 지루한 작업이 되기 쉽다. XSLT와 XPath를 사용해서 원하는 노드를 선택하는 것이 가장 좋은 방법이며, 이를 통해 다운받은 주석 정보를 현재 작업중인 검색 엔진에 맞도록 변경할 수가 있다.
필자는 검색 엔진에 사용될 이름값을 기준으로 변환하기 위해 XSLT 파일 을 만들었다. 이 파일을 받아서 여러분의 검색 엔진에 맞도록 변경할 수 있다.
검색 엔진 꾸미기
여러분의 시스템에 환경변수 파일과 주석 파일을 저장했다면, 이제는 다양한 방법으로 검색 엔진을 멋지게 보일 수 있다. 결과 페이지의 색을 다르게 하는 것만으로도 차별화된 검색 엔진을 구현할 수 있다.
방금 전에 다운로드 한 환경변수 파일 에서 결과 페이지의 배경색, 구글 광고 주위의 테두리 색, 그리고 각 검색 결과의 상단에 위치한 제목의 색을 다음과 같이 변경하였다.
이제 제어판의 고급 탭으로 가서 이 새로운 파일을 업로드 하면 작업이 종료된다(그 전에 원본 파일 복사하는 것을 잊지 말자). 미리 보기(Preview)탭에서 검색 엔진이 어떻게 바뀌었는지 확인 가능하다.
다양한 색 파라미터(parameter)를 사용해서 결과 페이지의 외관을 변경할 수 있다.
색 파라미터
사용 장소
Background
결과 페이지의 배경
Border
광고 주위와 결과 위의 테두리
Title
각 검색 결과의 URL 이름
Text
각 검색 결과의 텍스트
URL
각 검색 결과 아래에 있는 연결되지 않은 URL
Visited
한번 방문했던 URL
Light
URL 옆에 있는 다른 정보. 캐시(Cached)나 상세검색 레이블
주석 파일을 바꿔서 검색 엔진의 핵심 기능의 제어가 가능하다. 다수의 사이트를 넣거나 각 사이트를 분류하고 (높거나 낮은) 우선 순위를 정하는 일을 할 수 있다.
구글에서는 각 사이트를 구분한 결과를 상세검색(Refinements)이라 부른다. 상세검색은 결과 페이지의 상당에 위치하며 검색 결과가 어디에 속해있는지를 나타낸다. 당뇨병 검색 엔진(Diabetes Search Engine) 의 상세검색은 병의 징후, 합병증, 그리고 연구 등으로 분류된다.
[그림 7] 상세검색
각 결과의 마지막 부분에 있는 상세검색 레이블을 통해, 해당 결과가 어떻게 분류가 되는지 쉽게 알 수 있다. 상세검색 레이블에서 하나를 클릭해보면, 그 레이블에 속한 결과만을 얻을 수 있다.
상세검색을 설정하기 위해서는 먼저 결과 페이지에 상세검색 레이블이 나타나도록 환경변수 파일을 변경해야 한다.
...
검색 결과에 보여줄 두 가지 다른 상세검색 레이블을 정의하였다. Lunch의 하이퍼링크를 클릭하면, 이 레이블에 포함된 모든 사이트가 높은 우선 순위를 갖게 되고 그 결과 검색 결과의 상단에 위치하게 된다. 이 과정에서, 해당 레이블에 속하지 않은 사이트도 결과에 포함될 수도 있다. 만약 레이블에 속한 사이트를 검색 결과의 위쪽에 더 많이 놓고자 한다면, 검색 가중치 값(1까지 가능)을 증가시키면 된다.
Dinner를 선택하면 이 레이블에 속한 사이트만이 결과로 출력되며, 그 이외의 사이트들은 검색할 수가 없다.
이제 사이트를 상세분류 하기 위해 주석 파일을 변경할 차례이다. 각 사이트는 이미 노드에서 정의했으므로, 여기서는 노드를 넣어 상세분류를 하기만 하면 된다.
변경 작업을 끝내고 새로운 주석 파일을 검색 엔진에 업로드 했다. 다시 한번 말하지만, 원본 주석 파일을 먼저 백업하도록 하자
환경변수 파일 포맷과 주석 파일 포맷에 대해 더 알고 싶은 독자는, 구글을 방문하여 관련 문서를 얻을 수 있다.
결론
본 기사에서는 구글 사용자 검색 엔진에 대한 충분한 소개를 통해 여러분만의 검색 엔진을 가질 수 있는 기회를 마련하였다. 여러분의 전문 지식을 활용하여 특정 분야의 정보를 찾고자 하는 사람들에게 도움을 줄 수가 있다. 또한, 검색 결과를 커스터마이징 하는 방법과 그 결과를 어떻게 보여줄지에 대해서도 자세히 알아보았다.
참조
Google’s CSE FAQ 에서는 CSE에 대한 몇 가지 일반적인 질문에 답을 갖고 있다.
CSE Documentation 은 커스터마이징 단계에서의 어려운 부분을 해결하는데 도움이 될 것이다.
Google Custom Search blog 에서 검색 엔진의 새로운 기능이나 변경사항을 확인할 수 있다.
Google Custom Search Help 에서 CSE 사용자들의 도움을 받을 수 있다.
구글에서는 영감을 줄 만한 몇 가지 특색 있는 예제(Featured CSE examples )들을 제공하고 있다.
저자 Bernard Farrell은 사용자 편의성 문제를 다루고 있는 소프트웨어 설계자이다. 그는 30년 이상의 소프트웨어 설계 및 개발 경험이 있으며, 초기 워크스테이션의 사용자 인터페이스 개발에도 참가하였다. 그는 당뇨병 검색 엔진을 만들었으며, 당뇨병 기술에 관한 블로그를 운영하고 있다.