개요
Elasticsearch/OpenSearch 커넥터는 Elasticsearch 또는 OpenSearch 클러스터에서 데이터를 가져와서 Fess 인덱스에 등록하는 기능을 제공합니다.
이 기능을 사용하려면 fess-ds-elasticsearch 플러그인이 필요합니다.
지원 버전
Elasticsearch 7.x / 8.x
OpenSearch 1.x / 2.x
전제조건
플러그인 설치가 필요합니다
Elasticsearch/OpenSearch 클러스터에 대한 읽기 액세스가 필요합니다
쿼리 실행 권한이 필요합니다
플러그인 설치
방법 1: JAR 파일 직접 배치
방법 2: 관리 화면에서 설치
“시스템” → “플러그인” 열기
JAR 파일 업로드
Fess 재시작
설정 방법
관리 화면에서 “크롤러” → “데이터 스토어” → “새로 만들기”에서 설정합니다.
기본 설정
| 항목 | 설정 예 |
|---|---|
| 이름 | External Elasticsearch |
| 핸들러 이름 | ElasticsearchDataStore |
| 활성화 | 켬 |
파라미터 설정
기본 연결:
인증 있는 연결:
복수 호스트 설정:
파라미터 목록
스크립트 설정
기본 매핑:
중첩된 필드 액세스:
사용 가능한 필드
source.<field_name>- Elasticsearch 문서의_source필드id- 문서 IDindex- 인덱스명score- 검색 스코어version- 문서 버전seqNo- 시퀀스 번호primaryTerm- 프라이머리 텀clusterAlias- 클러스터 에일리어스(크로스 클러스터 검색 시)hit- SearchHit 객체(고급 사용)
쿼리 설정
전체 문서 취득
기본적으로 전체 문서가 취득됩니다. query 파라미터를 지정하지 않으면 ``match_all``이 사용됩니다.
특정 조건으로 필터링
범위 지정:
복수 조건:
참고
query 파라미터는 쿼리 본체만 허용합니다. 외부 {"query":...} 래퍼는 불필요합니다. 정렬 등의 검색 레벨 옵션은 이 파라미터에서 지정할 수 없습니다.
특정 필드만 취득
fields 파라미터로 취득 필드 제한
모든 필드를 취득하려면 ``fields``를 지정하지 않거나 비워둡니다.
사용 예
기본 인덱스 크롤링
파라미터:
스크립트:
인증 포함 클러스터 크롤링
파라미터:
스크립트:
복수 인덱스 크롤링
파라미터:
스크립트:
OpenSearch 클러스터 크롤링
파라미터:
스크립트:
필드 제한 크롤링
파라미터:
스크립트:
복수 호스트 부하 분산
파라미터:
스크립트:
문제 해결
연결 오류
증상: Connection refused 또는 No route to host
확인 사항:
호스트 URL이 올바른지 확인(프로토콜, 호스트명, 포트)
Elasticsearch/OpenSearch가 실행 중인지 확인
방화벽 설정 확인
HTTPS인 경우 인증서가 유효한지 확인
인증 오류
증상: 401 Unauthorized 또는 403 Forbidden
확인 사항:
사용자명과 비밀번호가 올바른지 확인
사용자에게 적절한 권한이 있는지 확인:
인덱스에 대한 읽기 권한
스크롤 API 사용 권한
Elasticsearch Security(X-Pack)가 활성화된 경우 올바르게 설정되어 있는지 확인
인덱스를 찾을 수 없음
증상: index_not_found_exception
확인 사항:
인덱스명이 올바른지 확인(대소문자 포함)
인덱스가 존재하는지 확인:
와일드카드 패턴이 올바른지 확인(예:
logs-*)
쿼리 오류
증상: parsing_exception 또는 search_phase_execution_exception
확인 사항:
쿼리 JSON이 올바른지 확인
Elasticsearch/OpenSearch 버전에 맞는 쿼리인지 확인
필드명이 올바른지 확인
쿼리를 Elasticsearch/OpenSearch에서 직접 실행하여 테스트:
스크롤 타임아웃
증상: No search context found 또는 Scroll timeout
해결 방법:
대량 데이터 크롤링
증상: 크롤링이 느리거나 타임아웃됨
해결 방법:
메모리 부족
증상: OutOfMemoryError
해결 방법:
SSL/TLS 연결
자체 서명 인증서의 경우
경고
프로덕션 환경에서는 올바르게 서명된 인증서를 사용하세요.
자체 서명 인증서를 사용하는 경우 Java keystore에 인증서 추가:
클라이언트 인증서 인증
클라이언트 인증서가 필요한 경우 추가 파라미터 설정이 필요합니다. 자세한 내용은 Elasticsearch 클라이언트 문서를 참조하세요.
고급 쿼리 예
집계를 포함한 쿼리
참고
query 파라미터는 쿼리 본체만 허용합니다. 집계(aggs), 정렬 등의 검색 레벨 옵션은 지정할 수 없습니다. 문서만 취득됩니다.
스크립트 필드
참고
Elasticsearch/OpenSearch의 스크립트 필드는 _source``에 포함되지 않으므로 ``source.* 프리픽스로 액세스할 수 없습니다. 스크립트 필드를 사용하려면 hit 객체에서 ``hit.getFields()``를 통해 액세스해야 합니다.
참고 정보
데이터스토어 커넥터 개요 - 데이터 스토어 커넥터 개요
데이터베이스 커넥터 - 데이터베이스 커넥터
데이터 저장소 크롤링 - 데이터 스토어 설정 가이드