비밀번호로 보호된 파일에 대한 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개 이상의 파일 형식을 지원합니다.

사전 요구 사항

  1. Java Development Kit (JDK) 8+ – PATH에 설치 및 구성되어 있어야 합니다.
  2. IDE – IntelliJ IDEA, Eclipse 또는 Java 호환 편집기.
  3. Maven – 의존성 관리를 위해 필요합니다.
  4. 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)

문제 해결

  • 이벤트 핸들러가 인덱싱하려는 모든 파일 확장자를 포함하도록 확인하세요.
  • 먼저 몇 개의 샘플 파일로 테스트하여 비밀번호가 적용되는지 확인하세요.

실용적인 적용 사례

  1. Enterprise Document Management: 기밀 계약서, 인사 파일, 재무 보고서의 인덱싱을 자동화합니다.
  2. Legal Archives: 파일을 암호화된 상태로 유지하면서 사건 파일을 빠르게 검색합니다.
  3. 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