Java에서 GroupDocs.Search를 사용한 메타데이터 인덱싱으로 문서를 인덱스에 추가하는 방법

문서를 빠르고 안정적으로 인덱스에 추가하는 것은 모든 최신 검색 기반 애플리케이션의 핵심입니다. 법률 저장소, 고객 지원 지식 베이스, 내부 문서 포털 등 어떤 시스템을 구축하든 메타데이터 인덱싱을 통해 저자, 제목, 사용자 정의 태그와 같은 메타데이터로 문서를 검색할 수 있습니다. 이 튜토리얼에서는 인덱스 설정을 구성하고, 메타데이터 중심 인덱스를 생성하고, 파일을 추가한 뒤 정밀 검색을 수행하는 방법을 GroupDocs.Search for Java와 함께 배웁니다.

Quick Answers

  • 메타데이터 인덱싱의 주요 목적은 무엇인가요? 전체 텍스트가 아니라 문서 속성을 기반으로 빠르게 검색할 수 있게 해줍니다.
  • 파일을 인덱스에 추가하는 메서드는 무엇인가요? index.add(YOUR_DOCUMENTS_FOLDER);
  • 사용자 정의 메타데이터 필드로 검색할 수 있나요? 네, 필드가 인덱싱되면 직접 쿼리할 수 있습니다.
  • 개발에 라이선스가 필요합니까? 평가용으로는 임시 체험 라이선스로 충분하며, 운영 환경에서는 정식 라이선스가 필요합니다.
  • 필요한 Java 버전은 무엇인가요? JDK 8 이상 권장됩니다.

What is metadata indexing in GroupDocs.Search?

메타데이터 인덱싱은 문서 속성(예: 저자, 생성 날짜, 사용자 정의 태그)을 추출하여 검색 가능한 구조에 저장합니다. 문서를 인덱스에 추가하면 엔진이 이러한 속성을 기록하므로 “John Doe가 저자인 모든 PDF 찾기” 또는 “저자별 PDF 검색”과 같은 정밀 쿼리를 실행할 수 있습니다.

Why use GroupDocs.Search for metadata indexing?

  • Performance: 메타데이터 검색은 가볍고 밀리초 단위로 결과를 반환합니다.
  • Flexibility: 다양한 파일 형식(PDF, DOCX, PPT 등)을 지원합니다.
  • Scalability: 최소 메모리 사용량으로 수백만 개 문서를 처리합니다.

Prerequisites

  • GroupDocs.Search for Java ≥ 25.4.
  • JDK 8 이상 설치 및 설정.
  • Java와 Maven에 대한 기본 지식.

Setting Up GroupDocs.Search for Java

Installation Instructions

pom.xml에 GroupDocs 저장소와 의존성을 추가합니다:

<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에서 직접 다운로드할 수 있습니다.

License Acquisition

테스트용 임시 라이선스를 얻으려면:

  1. GroupDocs 웹사이트에서 Purchase 섹션으로 이동합니다.
  2. 평가 요구에 맞는 temporary license 플랜을 선택합니다.

Step‑by‑Step Implementation

Feature 1: Index Settings Configuration

메타데이터에 초점을 맞춘 인덱스를 구성합니다:

import com.groupdocs.search.IndexSettings;
import com.groupdocs.search.IndexType;

// Initialize index settings
IndexSettings settings = new IndexSettings();
settings.setIndexType(IndexType.MetadataIndex);  // Focus on metadata indexing
  • setIndexType(IndexType.MetadataIndex)는 전체 텍스트보다 메타데이터를 우선시하도록 엔진에 지시합니다.

Feature 2: Creating an Index in a Specified Folder

모든 메타데이터가 저장될 물리적 인덱스 디렉터리를 생성합니다:

import com.groupdocs.search.Index;

String YOUR_INDEX_DIRECTORY = "YOUR_DOCUMENT_DIRECTORY\\\\output\\\\AdvancedUsage\\\\Indexing\\\\IndexingMetadataOfDocuments";

// Create index in specified directory using settings
Index index = new Index(YOUR_INDEX_DIRECTORY, settings);

YOUR_DOCUMENT_DIRECTORY를 프로젝트 구조에 맞는 경로로 교체하십시오.

Feature 3: How to add documents to index

인덱스가 생성되었으므로 문서를 인덱스에 추가하여 검색 가능하게 만들 수 있습니다:

String YOUR_DOCUMENTS_FOLDER = "YOUR_DOCUMENT_DIRECTORY";

// Add all documents in directory to the index
index.add(YOUR_DOCUMENTS_FOLDER);

Tips:

  • 폴더 경로가 정확하고 애플리케이션에 읽기 권한이 있는지 확인합니다.
  • GroupDocs.Search는 각 파일에서 지원되는 메타데이터를 자동으로 추출합니다.

Feature 4: Searching documents by metadata

예를 들어 언어가 English인 문서를 검색하는 등 메타데이터 필드를 대상으로 쿼리를 실행합니다:

import com.groupdocs.search.results.SearchResult;

String query = "English";  // Define search query
SearchResult result = index.search(query);  // Perform the search

// Process results (example)
for (int i = 0; i < result.getDocumentCount(); i++) {
    System.out.println("Found document: " + result.getFoundDocument(i).getFilePath());
}
  • search(query)는 인덱싱된 메타데이터를 탐색하고 일치하는 문서를 반환합니다.
  • 저자 이름을 쿼리 문자열로 사용하면 search pdf by author도 가능합니다.

Practical Applications

  1. Enterprise Document Management: 계약 날짜나 서명자 이름으로 계약서를 검색합니다.
  2. Digital Library Catalogs: 사용자가 장르, 출판 연도, 저자별로 책을 탐색할 수 있게 합니다.
  3. CRM Systems: 고객 ID나 지역과 같은 사용자 정의 메타데이터로 클라이언트 파일을 빠르게 찾습니다.

Tips and Best Practices

  • Incremental Updates: 전체 인덱스를 재구축하는 대신 index.addOrUpdate()를 사용해 새 파일이나 변경된 파일을 추가합니다.
  • Batch Processing: 수천 개 파일을 처리할 때는 메모리 사용량을 낮추기 위해 작은 배치로 나누어 추가합니다.
  • Metadata Validation: 쿼리하려는 메타데이터(예: PDF의 저자 필드)가 실제 문서에 포함되어 있는지 확인합니다.

Performance Considerations

  • Memory Tuning: 인덱싱된 메타데이터 양에 따라 JVM 힙 크기(-Xmx)를 조정합니다.
  • Optimized Storage: 정기적으로 index.optimize()를 호출해 인덱스를 압축하고 쿼리 속도를 향상시킵니다.

Common Issues and Solutions

IssueSolution
No results returned기대하는 메타데이터 필드가 실제 파일에 존재하는지 확인합니다.
Permission errorsJava 프로세스가 문서 폴더와 인덱스 디렉터리에 대한 읽기 권한을 가지고 있는지 확인합니다.
Out‑of‑memory errorsJVM 힙 크기를 늘리거나 add 작업을 작은 그룹으로 배치 처리합니다.

Frequently Asked Questions

Q: What is metadata indexing?
A: 메타데이터 인덱싱은 문서 속성(저자, 제목, 사용자 정의 태그)을 검색 가능한 구조에 저장하여 전체 텍스트를 스캔하지 않고도 빠르게 조회할 수 있게 합니다.

Q: How do I obtain a temporary license?
A: GroupDocs 구매 페이지를 방문하고 체험 라이선스를 획득하기 위한 절차를 따릅니다.

Q: Can I index PDFs with this setup?
A: 네, GroupDocs.Search는 PDF, DOCX, PPT 등 다양한 형식을 지원합니다.

Q: What are common issues when adding documents?
A: 파일 경로가 올바른지 확인하고, 애플리케이션에 해당 디렉터리에 대한 읽기 권한이 있는지 점검합니다.

Q: How do I optimize search performance?
A: 인덱스를 정기적으로 업데이트하고, 증분 추가를 사용하며, JVM 메모리 설정을 최적화합니다.

Resources


Last Updated: 2026-03-17
Tested With: GroupDocs.Search Java 25.4
Author: GroupDocs