울티마 가이드 홈페이지를 만들면서 꼭 필요하다고 생각했던(하지만 사용률은 미미한^^;) 기능이 로컬 검색 기능이었습니다. PHP 기반의 게시판이나 블로그가 아닌 html 페이지로 만들어졌기에 검색 기능을 넣기 위해서 열심히 자료를 찾아다녔지요.
물론 국내에 잘 알려진 na@earch 스크립트가 있지만 2002년 12월 이후로 업데이트가 안되고 있고 유니코드 지원 여부도 확인할 수 없더군요.
로컬 검색 엔진에 관한 자료가 생각보다 적은데다가, 검색 엔진으로 ‘검색 엔진’을 찾으려니 엉뚱한 결과들만 나왔는데 그러다 찾은 것이 지금 소개하는 Orca Search입니다.
주요 기능 소개
일단 Orca Search 홈페이지에 나와 있는 주요 기능은 다음과 같습니다.
- 쉬운 설치와 실행(PHP와 MySQL 데이타베이스를 사용함).
- 1000~2000 페이지까지 무리 없이 사용할 수 있음.
- 키워드 인덱싱이 아닌 전체 텍스트(full-text) 인덱싱으로 신뢰성 있는 검색 결과를 얻을 수 있음.
- 자동으로 사이트를 인덱싱해서 데이타베이스를 업데이트함.
- 향상된 검색 알고리즘 사용 ? 어구(語句) 검색이 가능하며, 검색어에 가중치를 부여할 수 있음. 파일 타입에 따른 검색이 가능함.
- 일반적인 텍스트 외에 페이지 제목(title), 키워드, 주소(URI) 검색이 가능함.
- 완벽한 유니코드(UTF-8) 지원.
- 추가적으로 라틴어 악센트 매칭이 가능함(예: ‘a’로 ‘a’ 또는 ‘a’ 매칭 가능).
- PDF나 JPEG 문서 내의 텍스트를 인식할 수 있는 플러그인 포함.
- 사용자의 검색어를 로그로 남김.
- 검색 페이지 캐싱(cashing)으로 서버 부하를 줄일 수 있음.
- 편리한 컨트롤 패널 GUI 지원.
- 다양한 출력 방식 지원 ? (X)HTML, RSS 2.0.
- 인덱싱한 데이타베이스로 구글 사이트맵을 생성할 수 있음.
- 데이타베이스를 압축된 자바스크립트로 변환시켜 오프라인 미러 사이트에서 사용할 수 있도록 해주는 툴(JWriter) 포함.
기능이 다양하지요? 추가적으로 제가 사용해보면서 좋다고 생각했던 기능을 적어보겠습니다.
- 쉬운 커스터마이징 ? 출력 결과를 쉽게 바꿀 수 있음.
- ‘의미 있는’ 마크업 ? CSS로 ‘표현’ 속성이 분리되어 있고 약간의 수정(?)으로 XHTML 1.0 Strict DTD에 맞는 검색 결과 출력 가능.
- 상세한 도움말 ? 48KB에 달하는 영문 도움말 텍스트 파일(readme.txt) 포함.
- 특정한 태그에 가중치를 부여할 수 있으므로 검색의 정확성이 높음.
- 특정한 태그나 id, class가 적용된 태그 내의 텍스트를 제외하고 인덱싱할 수 있음.
- 저작권 관련 문구를 반드시 표시할 필요가 없으며 GPL를 따름.
블로그에 적용된 Orca Search 데모
어떤 사이트에 유용한가?
하지만 정적으로 만들어지는 html 기반의 홈페이지에 검색 기능을 추가하는 용도로는 더할 나위 없이 좋습니다. 울티마 가이드 홈페이지 처럼이요(끊임 없는 광고^^;). ‘로컬 검색 엔진’에 관한 정보를 찾는 분들은 아마도 이런 목적으로 이 페이지를 찾아오시지 않았을까 생각합니다.
설치 방법
Orca Search 설치에 필요한 조건은 다음과 같습니다.
PHP 4.2.0 버전 이상 (4.3.0 이상을 추천함)MySQL 3.23 버전 이상다운로드 페이지에서 최종 버전(2007년 5월 29일 현재 2.3 버전)을 다운받은 후 압축을 해제합니다.
os2 폴더에 있는 config.ini.php 파일을 열고 자신이 사용하는 데이타베이스 설정에 맞게 hostname, username, password, database 값을 바꿔줍니다. 보안과 관련된 중요한 정보이니 다른 사람에게는 절대로 알려주면 안된다는 점 주의하시고요.
마찬가지로 config.ini.php 파일에 있는 adminName과 adminPass를 설정해 줍니다. 여기에 적힌 이름과 비밀번호로 컨트롤 패널에 접속하게 되지요.
설정이 끝났으면 모든 파일과 폴더를 FTP 프로그램을 사용해서 서버에 업로드합니다. 전송이 끝난 후 웹 브라우저에서 os2/control.php 파일의 주소를 입력한 다음 위에서 설정한 이름과 비밀번호로 로그인합니다. 저는 모든 파일과 폴더를 사이트 루트 디렉토리에 업로드했기 때문에 아래 주소로 접속했습니다.
http://blog.wystan.net/os2/control.php기본 검색 엔진 설정
컨트롤 패널에서 Orca Search의 다양한 옵션을 설정할 수 있습니다. 기본적으로 맨 처음 해줘야 할 것은 유니코드(UTF-8) 인코딩 설정입니다. ‘Tool’ 메뉴의 ‘Display Charset’ 설정에서 컨트롤 패널에서 사용하는 문자 인코딩 방식을 지정할 수 있는데 UTF-8 인코딩으로 작성된 페이지에 대한 인덱싱 결과를 보려면 UTF-8로 설정해주세요. 다음으로 검색 엔진이 실제로 UTF-8 인코딩으로 페이지를 인덱싱할 수 있도록 ‘Spider’ 메뉴의 ‘UTF-8 Indexing’ 항목을 체크 표시해주면 UTF-8로 인코딩된 한글을 완벽하게 처리할 수 있습니다.
‘Spider’ 메뉴의 ‘Use Crontab Trigger’를 활성화시키면 유닉스의 crontab 명령을 이용해서 주기적으로 페이지를 인덱싱할 수 있다고 하는데 사용해보지는 않았습니다. 이 명령을 사용하지 않고 일정한 시간 간격마다 Orca Search 스크립트를 실행하려면 간단하게 오른쪽의 ‘Interval Between Spiders’ 옵션을 활성화시키고 시간 간격을 적어주면 됩니다. 기본값인 24시간을 적용하면 하루에 한 번 자동으로 전체 페이지를 인덱싱합니다.
물론 사용자가 원할 때에만 인덱싱을 할 수 있습니다. ‘Spider’ 메뉴 맨 위에 있는 ‘Start Spider’ 버튼을 클릭하면 즉시 인덱싱이 시작됩니다.
검색 페이지 만들기
Orca Search를 설치하면 기본 검색 페이지인 _search.php 파일이 만들어집니다. 하지만 대부분의 경우 검색 창을 이미 만들어진 페이지에 적용하게 되는데 그럴 때에는 다음과 같은 PHP 코드를 사용하면 됩니다.
<?php include "os2/config.php";include "os2/head.php";include "os2/body.xhtml.php";?>마치며
조금 더 자세히 설명하려고 했는데 밤은 깊어가고 글은 길어졌네요^^; 자세한 사항은 Orca Search에 포함된 도움말을 참고하시기 바랍니다. 사실 Orca Search의 다양한 기능을 잘 살려서 정확성 있는 검색 결과를 보여주려면 컨트롤 패널의 옵션들을 세밀하게 설정해야 합니다. 또한 자신이 원하는 출력 양식을 만들기 위해서는 CSS를 사용할 수 있어야 하고요.
하지만 앞서 이 스크립트가 html 기반의 정적인 사이트에 적합하다고 했던 것처럼 블로그가 아닌 상업적인 사이트를 구축하거나 할 때에는 유용하게 사용할 수 있으리라는 생각에 소개하는 글을 써봤습니다. 혹시라도 궁금한 점 있으면 댓글이나 이메일로 알려주세요.
