비밀번호로 보호된 파일에 대한 GroupDocs.Search를 사용한 Java 문서 인덱스 생성
현대 기업에서는 비밀번호로 민감한 데이터를 보호하는 것이 필수적이지만, 빠른 검색을 위해 create document index 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 – 사전이나 이벤트 핸들러를 통해 비밀번호를 한 번만 제공합니다.
- High performance – 수백만 개의 문서까지 확장 가능한 최적화된 인덱싱 엔진.
- Rich query language – Boolean 연산자, 와일드카드, 퍼지 검색을 지원합니다.
- Cross‑format support – 기본적으로 100개 이상의 파일 형식을 지원합니다.
사전 요구 사항
- 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를 방문하고 안내에 따라 무료 체험을 받으세요.
GroupDocs.Search를 사용하여 create document index java 하는 방법
아래는 두 가지 실용적인 접근 방식입니다. 두 방법 모두 비밀번호를 자동으로 처리하면서 create document index java 를 할 수 있게 합니다.
접근 방식 1 – 비밀번호 사전을 사용한 인덱싱
개요
문서 비밀번호를 사전에 저장하면 엔진이 파일을 실시간으로 해제할 수 있습니다.
단계 1: 인덱스 및 문서 폴더 정의
String indexFolder = "YOUR_OUTPUT_DIRECTORY/IndexUsingPasswordDictionary";
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY"; // Path to password‑protected documents
단계 2: 인덱스 생성
// Initialize the Index object in the specified directory
Index index = new Index(indexFolder);
단계 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");
단계 4: 문서 인덱싱
// Automatically retrieve passwords from the dictionary during indexing
index.add(documentsFolder);
단계 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 – 비밀번호 요구 이벤트 리스너를 사용한 인덱싱
개요
엔진이 비밀번호 필요 이벤트를 발생시킬 때 동적으로 비밀번호를 제공합니다.
단계 1: 인덱스 및 문서 폴더 정의
String indexFolder = "YOUR_OUTPUT_DIRECTORY/IndexUsingPasswordEvent";
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY"; // Path to password‑protected documents
단계 2: 인덱스 생성
// Initialize the Index object in the specified directory
Index index = new Index(indexFolder);
단계 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");
}
}
});
단계 4: 문서 인덱싱
// The event handler will supply passwords as required during indexing
index.add(documentsFolder);
단계 5: 인덱스에서 검색
String query = "ipsum OR increasing";
SearchResult result = index.search(query);
// Handle search results (e.g., display or process them)
문제 해결
- 이벤트 핸들러가 인덱싱하려는 모든 파일 확장자를 포함하도록 확인하세요.
- 먼저 몇 개의 샘플 파일로 테스트하여 비밀번호가 적용되는지 확인하세요.
실용적인 적용 사례
- Enterprise Document Management: 기밀 계약서, 인사 파일, 재무 보고서의 인덱싱을 자동화합니다.
- Legal Archives: 파일을 암호화된 상태로 유지하면서 사건 파일을 빠르게 검색합니다.
- Healthcare Records: 환자 PDF 및 Word 문서를 PHI를 노출하지 않고 인덱싱합니다.
성능 고려 사항
- Memory Allocation: 대용량 배치를 위해 충분한 힙 메모리(
-Xmx2g이상)를 할당하세요. - Parallel Indexing:
index.addAsync(...)를 사용하거나 여러 인덱싱 스레드를 실행하여 처리량을 높이세요. - Index Maintenance: 정기적으로
index.optimize()를 호출해 인덱스를 압축하고 쿼리 속도를 향상시키세요.
자주 묻는 질문
Q: 다양한 파일 형식을 어떻게 처리하나요?
A: GroupDocs.Search는 PDF, DOCX, XLSX, PPTX 등 많은 형식을 지원합니다. 필요에 따라 적절한 포맷 플러그인을 설치하세요.
Q: 비밀번호가 틀리면 어떻게 되나요?
A: 해당 문서는 건너뛰고 경고가 로그에 기록됩니다. 비밀번호 사전이나 이벤트 핸들러 로직을 다시 확인하세요.
Q: 클라우드에 저장된 파일을 인덱싱할 수 있나요?
A: 예, 하지만 엔진이 파일 시스템 경로와 함께 작동하므로 먼저 로컬 임시 폴더에 다운로드해야 합니다.
Q: 검색 관련성을 어떻게 향상시킬 수 있나요?
A: IndexOptions를 통해 점수 설정을 조정하고, 동의어를 사용하며, 고급 쿼리 구문(field:term~ 퍼지 매칭)을 활용하세요.
Q: 일부 파일에 대해 인덱싱이 실패하면 어떻게 해야 하나요?
A: 로그 출력을 검토하세요; 일반적인 원인은 비밀번호 누락, 파일 손상, 지원되지 않는 형식입니다.
리소스
이 가이드를 따라 하면 이제 비밀번호로 보호된 파일에 대해 create document index java 하는 방법을 알게 되어, 애플리케이션의 보안과 검색 가능성을 모두 향상시킬 수 있습니다.
마지막 업데이트: 2026-01-06
테스트 환경: GroupDocs.Search 25.4 for Java
작성자: GroupDocs