GroupDocs.Search를 사용한 Java에서 비밀번호로 보호된 파일의 문서 인덱싱 방법
비밀번호로 보호된 문서 인덱싱 방법을 궁금해 하신다면, 바로 이곳이 정답입니다. 현대 기업에서는 민감한 데이터를 비밀번호로 보호하는 것이 필수이지만, 그 때문에 빠르고 검색 가능한 인덱스를 만들기가 어려워집니다. 이 튜토리얼에서는 GroupDocs.Search for Java를 사용해 비밀번호로 보호된 파일에 대한 안전하고 고성능의 문서 인덱스를 구축하는 정확한 단계를 단계별로 안내하면서, 과정이 간단하고 유지보수하기 쉬운 방법을 소개합니다.
빠른 답변
- 이 튜토리얼에서 다루는 내용은? 비밀번호 사전과 이벤트 리스너를 이용한 비밀번호 보호 문서 인덱싱.
- 필요한 라이브러리는? GroupDocs.Search for Java (최신 버전).
- 라이선스가 필요한가요? 평가용으로 사용할 수 있는 임시 무료 체험 라이선스가 제공됩니다.
- 다른 파일 형식도 인덱싱할 수 있나요? 네, GroupDocs.Search는 PDF, DOCX, XLSX 등 다양한 형식을 지원합니다.
- 필요한 Java 버전은? JDK 8 이상.
“create document index java”란 무엇인가요?
Java에서 문서 인덱스를 만든다는 것은 용어와 해당 용어가 나타나는 파일을 매핑하는 검색 가능한 데이터 구조를 구축한다는 의미입니다. GroupDocs.Search를 사용하면 이 과정이 자동으로 암호화된 문서를 처리하므로 각 파일을 수동으로 해제할 필요가 없습니다.
비밀번호 보호 파일에 GroupDocs.Search를 사용하는 이유
- Zero‑touch unlocking – 사전이나 이벤트 핸들러를 통해 한 번만 비밀번호를 제공하면 됩니다.
- 고성능 – 수백만 개의 문서도 처리할 수 있는 최적화된 인덱싱 엔진.
- 풍부한 쿼리 언어 – Boolean 연산자, 와일드카드, 퍼지 검색 지원.
- 다양한 형식 지원 – 기본적으로 100개 이상의 파일 형식을 처리합니다.
- 문서 인덱싱 방법을 단순화 – API가 암호화된 파일을 다루는 복잡성을 추상화합니다.
사전 준비
- Java Development Kit (JDK) 8+ – PATH에 설치 및 설정 완료.
- IDE – IntelliJ IDEA, Eclipse 또는 Java를 지원하는 편집기.
- Maven – 의존성 관리를 위해 필요.
- GroupDocs.Search for Java – Maven을 통해 라이브러리를 추가합니다(아래 참고).
GroupDocs.Search for Java 설정하기
Maven 사용
pom.xml 파일에 저장소와 의존성을 추가합니다:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/search/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>25.4</version>
</dependency>
</dependencies>
직접 다운로드
또는 GroupDocs.Search for Java releases에서 최신 버전을 직접 다운로드할 수 있습니다.
체험 라이선스를 시작하려면 GroupDocs’ temporary license page를 방문하여 무료 체험 라이선스를 발급받는 절차를 따르세요.
비밀번호 사전을 사용한 문서 인덱싱 방법
아래는 두 가지 실용적인 접근 방식입니다. 두 방법 모두 create document index java를 수행하면서 비밀번호를 자동으로 처리합니다.
접근 방식 1 – 비밀번호 사전을 이용한 인덱싱
개요
문서 비밀번호를 사전에 저장해 두면 엔진이 파일을 실시간으로 해제할 수 있습니다.
Step 1: 인덱스와 문서 폴더 정의
String indexFolder = "YOUR_OUTPUT_DIRECTORY/IndexUsingPasswordDictionary";
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY"; // Path to password‑protected documents
Step 2: 인덱스 생성
// Initialize the Index object in the specified directory
Index index = new Index(indexFolder);
Step 3: 문서 비밀번호 추가
// Add passwords for specific files using their absolute paths
String path1 = new File(documentsFolder + "/English.docx").getAbsolutePath();
index.getDictionaries().getDocumentPasswords().add(path1, "123456");
String path2 = new File(documentsFolder + "/Lorem ipsum.docx").getAbsolutePath();
index.getDictionaries().getDocumentPasswords().add(path2, "123456");
Step 4: 문서 인덱싱
// Automatically retrieve passwords from the dictionary during indexing
index.add(documentsFolder);
Step 5: 인덱스에서 검색
String query = "ipsum OR increasing";
SearchResult result = index.search(query);
// Handle search results (e.g., display or process them)
팁: 파일이 많을 경우 하드코딩 대신 데이터베이스, Azure Key Vault 등 보안 저장소에서 비밀번호를 로드하는 것을 고려하세요.
문제 해결
- 각 비밀번호가 파일의 실제 보호 비밀번호와 일치하는지 확인하세요.
- 파일 경로가 잘못되면
FileNotFoundException이 발생합니다.
접근 방식 2 – 비밀번호 요구 이벤트 리스너를 이용한 인덱싱
개요
엔진이 비밀번호 요구 이벤트를 발생시킬 때 동적으로 비밀번호를 제공합니다.
Step 1: 인덱스와 문서 폴더 정의
String indexFolder = "YOUR_OUTPUT_DIRECTORY/IndexUsingPasswordEvent";
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY"; // Path to password‑protected documents
Step 2: 인덱스 생성
// Initialize the Index object in the specified directory
Index index = new Index(indexFolder);
Step 3: 비밀번호‑요구 이벤트 구독
index.getEvents().PasswordRequired.add(new EventHandler<PasswordRequiredEventArgs>() {
@Override
public void invoke(Object sender, PasswordRequiredEventArgs args) {
// Provide password for DOCX files when needed
if (args.getDocumentFullPath().endsWith(".docx")) {
args.setPassword("123456");
}
}
});
Step 4: 문서 인덱싱
// The event handler will supply passwords as required during indexing
index.add(documentsFolder);
Step 5: 인덱스에서 검색
String query = "ipsum OR increasing";
SearchResult result = index.search(query);
// Handle search results (e.g., display or process them)
문제 해결
- 이벤트 핸들러가 인덱싱하려는 모든 파일 확장자를 포함하도록 설정하세요.
- 먼저 몇 개의 샘플 파일로 테스트해 비밀번호가 정상적으로 적용되는지 확인하세요.
실용적인 적용 사례
- 기업 문서 관리: 기밀 계약서, 인사 파일, 재무 보고서 등을 자동으로 인덱싱.
- 법률 아카이브: 암호화된 상태로 보관하면서 사건 파일을 빠르게 검색.
- 의료 기록: 환자 PDF 및 Word 문서를 PHI를 노출하지 않고 인덱싱.
성능 고려 사항
- 메모리 할당: 대용량 배치를 위해 충분한 힙 메모리(
-Xmx2g이상)를 할당하세요. - 병렬 인덱싱:
index.addAsync(...)를 사용하거나 여러 인덱싱 스레드를 실행해 처리량을 높이세요. - 인덱스 유지 관리: 정기적으로
index.optimize()를 호출해 인덱스를 압축하고 쿼리 속도를 향상시킵니다.
일반적인 문제와 해결책
- 비밀번호 오류: 문서가 건너뛰어지고 경고가 로그에 기록됩니다. 비밀번호 사전이나 이벤트 핸들러를 다시 확인하세요.
- 지원되지 않는 형식: 필요한 형식 플러그인을 설치하거나 인덱싱 전에 지원되는 형식으로 변환하세요.
- 대용량 파일: 힙 크기를 늘리고 작은 배치로 나누어 인덱싱하는 것을 고려하세요.
자주 묻는 질문
Q: 다양한 파일 형식은 어떻게 처리하나요?
A: GroupDocs.Search는 PDF, DOCX, XLSX, PPTX 등 많은 형식을 지원합니다. 필요에 따라 해당 형식 플러그인을 설치하면 됩니다.
Q: 비밀번호가 틀리면 어떻게 되나요?
A: 해당 문서는 건너뛰어지고 경고가 로그에 남습니다. 비밀번호 소스를 다시 확인하세요.
Q: 클라우드에 저장된 파일도 인덱싱할 수 있나요?
A: 네, 하지만 엔진은 파일 시스템 경로를 사용하므로 먼저 로컬 임시 폴더로 다운로드해야 합니다.
Q: 검색 관련성을 어떻게 높일 수 있나요?
A: IndexOptions를 통해 점수 설정을 조정하고, 동의어를 활용하며, 고급 쿼리 구문(field:term~ 퍼지 매칭) 등을 이용하세요.
Q: 일부 파일에서 인덱싱이 실패하면 어떻게 해야 하나요?
A: 로그 출력을 검토하세요. 흔한 원인으로는 비밀번호 누락, 파일 손상, 지원되지 않는 형식 등이 있습니다.
리소스
- GroupDocs.Search Documentation
- API Reference
- Download GroupDocs.Search
- GitHub Repository
- Free Support Forum
- Temporary License Information
이 가이드를 따라 하면 이제 문서 인덱싱 방법을 통해 비밀번호로 보호된 파일을 인덱싱할 수 있게 되었으며, 애플리케이션의 보안성과 검색 가능성을 동시에 향상시킬 수 있습니다.
마지막 업데이트: 2026-03-15
테스트 환경: GroupDocs.Search 25.4 for Java
작성자: GroupDocs