들어가며
지난 회에서는 기존 웹 사이트에 Fess의 검색 기능을 통합하는 방법을 소개했습니다. 그러나 실제 기업 환경에서는 정보가 웹 사이트뿐만 아니라 파일 서버나 클라우드 스토리지 등 다양한 곳에 흩어져 있습니다.
본 기사에서는 여러 데이터 소스를 Fess에 통합하고, 이용자가 하나의 검색창에서 모든 문서를 횡단 검색할 수 있는 환경을 구축합니다.
대상 독자
사내 문서가 여러 곳에 분산되어 있는 분
파일 서버나 클라우드 스토리지의 검색에 불만이 있는 분
제2회의 절차에 따라 Fess가 기동 완료된 상태일 것
시나리오
어느 중규모 기업을 상정합니다. 이 기업에서는 다음과 같은 곳에 문서가 흩어져 있습니다.
사내 웹 사이트: 사내 포털, 사내 블로그
파일 서버: 부서별 공유 폴더(SMB/CIFS)
로컬 파일: 서버상의 특정 디렉터리
직원들은 “그 자료 어디 있었지?”라고 생각했을 때, 각각의 도구를 개별적으로 검색해야 합니다. 이를 Fess로 일원화하여 하나의 검색창에서 횡단 검색할 수 있도록 합니다.
데이터 소스의 설계
횡단 검색을 구축할 때, 가장 먼저 중요한 것은 “무엇을 어떻게 검색 대상으로 할 것인가”의 설계입니다.
검색 대상의 정리
먼저 검색 대상으로 할 데이터 소스를 정리합니다.
| 데이터 소스 | 종류 | 규모의 목안 | 업데이트 빈도 |
|---|---|---|---|
| 사내 포털 | 웹 크롤 | 수백 페이지 | 주간 |
| 기술 블로그 | 웹 크롤 | 수십~수백 페이지 | 비정기 |
| 공유 폴더 | 파일 크롤 | 수만 파일 | 일간 |
| 아카이브 | 파일 크롤 | 수천 파일 | 월간 |
라벨에 의한 분류 설계
Fess의 “라벨” 기능을 사용하면 검색 대상을 카테고리별로 나눌 수 있습니다. 이용자는 검색 시 라벨을 선택하여 특정 카테고리로 좁혀서 검색할 수 있습니다.
이번 시나리오에서는 다음과 같은 라벨을 설정합니다.
포털: 사내 포털 및 블로그의 정보
공유 파일: 파일 서버의 문서
아카이브: 과거의 자료
라벨의 설정
관리 화면의 [크롤러] > [라벨]을 선택
[새로 만들기]로 라벨을 작성
각 라벨에 “이름”과 “값”을 설정합니다. 값은 영숫자로 설정하며, 크롤 설정과 연결하기 위해 사용합니다.
크롤 설정의 구축
웹 크롤의 설정
사내 포털의 크롤 설정입니다.
[크롤러] > [웹] > [새로 만들기]
아래를 설정
URL:
https://portal.example.com/크롤 대상으로 할 URL:
https://portal.example.com/.*크롤 대상에서 제외할 URL:
https://portal.example.com/admin/.*최대 액세스 수:
500스레드 수:
3간격:
5000라벨: 포털
[작성]을 클릭
제외 URL을 설정함으로써 관리 화면 등 검색 대상으로 하고 싶지 않은 페이지를 제외할 수 있습니다.
파일 크롤의 설정
공유 폴더의 크롤 설정입니다.
[크롤러] > [파일 시스템] > [새로 만들기]
아래를 설정
패스:
smb://fileserver.example.com/shared/크롤 대상으로 할 패스:
smb://fileserver.example.com/shared/.*크롤 대상에서 제외할 패스:
.*\\.tmp$최대 액세스 수:
10000스레드 수:
5간격:
1000라벨: 공유 파일
[작성]을 클릭
SMB 인증의 설정
인증이 필요한 파일 서버의 경우 파일 인증 설정이 필요합니다.
[크롤러] > [파일 인증] > [새로 만들기]
아래를 설정
호스트명:
fileserver.example.com스킴:
Samba사용자명: 서비스 계정의 사용자명
패스워드: 서비스 계정의 패스워드
[작성]을 클릭
로컬 파일의 크롤
서버상의 특정 디렉터리를 크롤하는 경우에는 파일 패스를 직접 지정합니다.
[크롤러] > [파일 시스템] > [새로 만들기]
아래를 설정
패스:
file:///data/archive/크롤 대상으로 할 패스:
file:///data/archive/.*크롤 대상에서 제외할 패스:
.*\\.(log|bak)$최대 액세스 수:
5000라벨: 아카이브
[작성]을 클릭
크롤 스케줄의 설계
여러 데이터 소스를 크롤하는 경우 스케줄 설계가 중요합니다. 모든 크롤을 동시에 실행하면 서버 리소스에 부하가 걸리고, 대상 서버에 대한 부하도 커집니다.
스케줄의 분산
데이터 소스의 업데이트 빈도에 따라 크롤 스케줄을 분산시킵니다.
| 데이터 소스 | 실행 타이밍 | 이유 |
|---|---|---|
| 사내 포털 | 매일 2:00 | 페이지 수가 적어 단시간에 완료 |
| 공유 폴더 | 매일 3:00 | 파일 수가 많으므로 야간에 실행 |
| 아카이브 | 매주 일요일 4:00 | 업데이트 빈도가 낮으므로 주간으로 충분 |
스케줄러의 설정
관리 화면의 [시스템] > [스케줄러]에서 크롤 작업의 실행 타이밍을 설정할 수 있습니다. 기본 “Default Crawler” 작업은 모든 크롤 설정을 일괄로 실행합니다.
패스 매핑으로 검색 결과를 사용하기 쉽게
크롤한 URL이나 파일 패스가 이용자에게 알기 어려운 경우가 있습니다. 패스 매핑을 사용하면 검색 결과에 표시되는 URL을 변환할 수 있습니다.
설정 예
파일 서버의 패스를 이용자가 브라우저에서 접근할 수 있는 URL로 변환합니다.
[크롤러] > [패스 매핑] > [새로 만들기]
아래를 설정
정규 표현식:
smb://fileserver.example.com/shared/(.*)치환:
https://fileserver.example.com/shared/$1
이를 통해 검색 결과의 링크를 클릭하면 브라우저에서 직접 파일에 접근할 수 있게 됩니다.
횡단 검색의 활용
라벨을 사용한 필터링 검색
크롤이 완료되면 검색 화면에서 횡단 검색을 체험해 봅시다.
검색 화면에서는 라벨의 탭이나 풀다운이 표시됩니다. 이용자는 “모두”를 선택하면 횡단 검색, 특정 라벨을 선택하면 해당 카테고리로 한정한 검색이 가능합니다.
예를 들어, “프로젝트 계획”으로 검색하면 포털의 기사, 공유 폴더의 Word 파일, 아카이브의 PDF가 혼재된 검색 결과가 반환됩니다. “공유 파일” 라벨로 필터링하면 파일 서버 내의 문서만으로 한정할 수 있습니다.
검색 결과의 정렬 순서
기본적으로 검색 키워드와의 관련도(스코어) 순으로 정렬됩니다. 데이터 소스의 종류에 관계없이 가장 관련성이 높은 문서가 상위에 표시됩니다.
정리
본 기사에서는 여러 데이터 소스를 Fess로 통합하고 횡단 검색 환경을 구축했습니다.
웹 사이트, 파일 서버, 로컬 파일의 3가지 크롤 설정
라벨에 의한 카테고리 분류와 필터링 검색
크롤 스케줄의 분산 설계
패스 매핑에 의한 URL 변환
횡단 검색의 도입으로 “어디에 저장되어 있는지”를 의식하지 않고 필요한 정보를 찾을 수 있게 됩니다.
다음 회에서는 부서별 권한에 따라 검색 결과를 제어하는 롤 기반 검색의 설계를 다룹니다.