개요
데이터베이스 커넥터는 JDBC 호환 관계형 데이터베이스에서 데이터를 가져와 Fess 의 인덱스에 등록하는 기능을 제공합니다.
이 기능에는 fess-ds-db 플러그인이 필요합니다.
지원 데이터베이스
JDBC 호환 모든 데이터베이스를 지원합니다. 주요 예:
MySQL / MariaDB
PostgreSQL
Oracle Database
Microsoft SQL Server
SQLite
H2 Database
전제 조건
JDBC 드라이버가 필요합니다
데이터베이스에 대한 읽기 액세스 권한이 필요합니다
대량의 데이터를 가져올 경우, 적절한 쿼리 설계가 중요합니다
JDBC 드라이버 설치
JDBC 드라이버를 lib/ 디렉토리에 배치합니다:
Fess 를 재시작하여 드라이버를 로드합니다.
설정 방법
관리 화면에서 “크롤러” → “데이터스토어” → “신규 작성”으로 설정합니다.
기본 설정
| 항목 | 설정 예 |
|---|---|
| 이름 | Products Database |
| 핸들러 이름 | DatabaseDataStore |
| 사용 | 켜기 |
파라미터 설정
MySQL/MariaDB 예:
PostgreSQL 예:
파라미터 목록
스크립트 설정
SQL 열 이름을 인덱스 필드에 매핑합니다:
사용 가능한 필드:
<column_name>- SQL 쿼리 결과의 열 라벨명으로 직접 접근
SQL 쿼리 설계
효율적인 쿼리
대량의 데이터를 다룰 경우, 쿼리 성능이 중요합니다:
차분 크롤링
업데이트된 레코드만 가져오는 방법:
URL 생성
문서의 URL은 스크립트로 생성합니다:
다국어 문자 지원
한국어 등 다국어 문자를 포함한 데이터를 다룰 경우:
MySQL
PostgreSQL
PostgreSQL은 보통 UTF-8이 기본입니다. 필요한 경우:
보안
데이터베이스 인증 정보 보호
경고
비밀번호를 설정 파일에 직접 기술하는 것은 보안 위험이 있습니다.
권장 방법:
환경 변수 사용
Fess 의 암호화 기능 사용
읽기 전용 사용자 사용
최소 권한 원칙
데이터베이스 사용자에게는 필요 최소한의 권한만 부여합니다:
사용 예
제품 카탈로그 검색
파라미터:
스크립트:
지식 베이스 문서
파라미터:
스크립트:
문제 해결
JDBC 드라이버를 찾을 수 없음
증상: ClassNotFoundException 또는 No suitable driver
해결 방법:
JDBC 드라이버가
lib/에 배치되어 있는지 확인드라이버의 클래스명이 올바른지 확인
Fess 재시작
연결 오류
증상: Connection refused 또는 인증 오류
확인 사항:
데이터베이스가 시작되어 있는지
호스트명, 포트 번호가 올바른지
사용자명, 비밀번호가 올바른지
방화벽 설정
쿼리 오류
증상: SQLException 또는 SQL 구문 오류
확인 사항:
SQL 쿼리를 직접 데이터베이스에서 실행하여 테스트
열 이름이 올바른지 확인
테이블 이름이 올바른지 확인
참고 정보
데이터스토어 커넥터 개요 - 데이터스토어 커넥터 개요
CSV 커넥터 - CSV 커넥터
JSON 커넥터 - JSON 커넥터
데이터 저장소 크롤링 - 데이터스토어 설정 가이드