GroupDocs.Search와 함께하는 Java 속성 검색 가이드

문서 관리 시스템에서 Java를 사용해 문서 속성을 동적으로 수정하고 인덱싱하고 싶으신가요? 바로 여기서 답을 찾으실 수 있습니다! 이 튜토리얼에서는 강력한 GroupDocs.Search for Java 라이브러리를 활용해 search by attribute java 를 수행하고, 인덱싱된 문서 속성을 변경하며, 인덱싱 과정 중에 속성을 추가하는 방법을 자세히 살펴봅니다. 검색 가능한 포털, 규정 준수 아카이브, 혹은 지능형 콘텐츠‑기반 앱을 구축하든, 이 기술을 마스터하면 시간 절약은 물론 성능 향상도 기대할 수 있습니다.

빠른 답변

  • “search by attribute java”란? 각 문서에 첨부된 사용자 정의 메타데이터를 이용해 검색 결과를 필터링하는 기능입니다.
  • 인덱싱 후 속성을 수정할 수 있나요? 네—AttributeChangeBatch 를 사용해 문서 속성을 일괄 업데이트할 수 있습니다.
  • 인덱싱하면서 속성을 추가하려면? FileIndexing 이벤트에 구독하고 프로그래밍 방식으로 속성을 설정합니다.
  • 라이선스가 필요합니까? 평가용 무료 체험판을 사용할 수 있으며, 운영 환경에서는 정식 라이선스가 필요합니다.
  • 필요한 Java 버전은? Java 8 이상을 권장합니다.

“search by attribute java”란?

search by attribute java 는 문서의 내용이 아니라 메타데이터(속성)를 기준으로 문서를 조회할 수 있게 해줍니다. public, main, key 와 같은 키‑값 쌍을 각 파일에 붙이면 가장 관련성 높은 하위 집합으로 빠르게 결과를 좁힐 수 있습니다.

동적 메타데이터 태깅을 사용하는 이유

  • 동적 분류 – 비즈니스 규칙이 변함에 따라 메타데이터를 실시간으로 동기화합니다.
  • 빠른 필터링 – 속성 필터가 전체 텍스트 검색 전에 평가되어 응답 시간이 단축됩니다.
  • 규정 준수 추적 – 보존 정책이나 감사 요구사항에 맞춰 문서를 태깅합니다.
  • 일괄 속성 업데이트 – 전체 컬렉션을 재인덱싱하지 않고도 다수 문서를 한 번에 변경합니다.

사전 요구 사항

  • Java 8+ (JDK 8 이상)
  • GroupDocs.Search for Java 라이브러리 (아래 Maven 설정 참고)
  • Java 및 인덱싱 개념에 대한 기본 이해

GroupDocs.Search for Java 설정하기

Maven 설정

<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 에서 최신 버전을 다운로드하십시오.
Maven 같은 빌드 도구를 사용하지 않으려면 GroupDocs 웹사이트 에서 JAR 파일을 직접 받으세요.

라이선스 획득

  • 무료 체험판으로 기능을 살펴볼 수 있습니다.
  • 장기 사용을 위해서는 license page 에서 임시 또는 정식 라이선스를 구매하십시오.

기본 초기화

import com.groupdocs.search.Index;

// Initialize an index in a specified directory
Index index = new Index("YOUR_OUTPUT_DIRECTORY/ChangeAttributes");

문서 속성 수정하기 (일괄 업데이트)

Search by Attribute Java – 문서 속성 변경

이미 인덱싱된 문서에 속성을 추가·삭제·교체할 수 있어 batch update document attributes 를 수행하면서 전체 컬렉션을 재인덱싱할 필요가 없습니다.

단계별 진행

Step 1: 인덱스에 문서 추가

index.add("YOUR_DOCUMENT_DIRECTORY");

Step 2: 인덱싱된 문서 정보 가져오기

import com.groupdocs.search.results.DocumentInfo;

DocumentInfo[] documents = index.getIndexedDocuments();

Step 3: 문서 속성 일괄 업데이트

import com.groupdocs.search.common.AttributeChangeBatch;
import com.groupdocs.search.SearchOptions;

AttributeChangeBatch batch = new AttributeChangeBatch();
batch.addToAll("public"); // Add 'public' to all documents
batch.remove(documents[0].getFilePath(), "public"); // Remove 'public' from a specific document
batch.add(documents[0].getFilePath(), "main", "key"); // Add 'main' and 'key' attributes

// Apply changes
index.changeAttributes(batch);

Step 4: 속성 필터로 검색

import com.groupdocs.search.results.SearchResult;

SearchOptions options = new SearchOptions();
options.setSearchDocumentFilter(SearchDocumentFilter.createAttribute("main"));
String query = "length";
SearchResult result = index.search(query, options); // Perform the search

AttributeChangeBatch 로 일괄 업데이트

AttributeChangeBatch 클래스는 batch update document attributes 를 위한 핵심 도구입니다. 변경 사항을 하나의 배치로 묶으면 I/O 부하를 줄이고 인덱스 일관성을 유지할 수 있습니다.

인덱싱 중에 속성 추가하기

Search by Attribute Java – 인덱싱 중 속성 추가

각 파일이 인덱스에 추가될 때 FileIndexing 이벤트에 연결해 사용자 정의 속성을 할당합니다.

단계별 진행

Step 1: FileIndexing 이벤트 구독

import com.groupdocs.search.events.EventHandler;
import com.groupdocs.search.events.FileIndexingEventArgs;

index.getEvents().FileIndexing.add(new EventHandler<FileIndexingEventArgs>() {
    @Override
    public void invoke(Object sender, FileIndexingEventArgs args) {
        if (args.getDocumentFullPath().endsWith("Lorem ipsum.pdf")) {
            args.setAttributes(new String[] { "main", "key" });
        }
    }
});

Step 2: 문서 인덱싱

index.add("YOUR_DOCUMENT_DIRECTORY");

실무 적용 사례

  1. 문서 관리 시스템 – 수집 단계에서 메타데이터를 자동으로 추가해 분류를 자동화합니다.
  2. 대용량 콘텐츠 아카이브 – 속성 필터를 활용해 검색 범위를 좁혀 응답 시간을 크게 단축합니다.
  3. 규정 준수 및 보고 – 보존 일정이나 감사 추적을 위해 문서를 동적으로 태깅합니다.

성능 고려 사항

  • 메모리 관리 – JVM 힙을 모니터링하고 필요에 따라 -Xmx 옵션을 조정합니다.
  • 배치 처리AttributeChangeBatch 로 속성 변경을 그룹화해 인덱스 쓰기를 최소화합니다.
  • 라이브러리 업데이트 – 최신 성능 패치를 적용하려면 GroupDocs.Search 를 최신 버전으로 유지합니다.

흔히 발생하는 문제와 해결 방법

IssueWhy It HappensHow to Fix
Attributes not applied이벤트 핸들러가 인덱싱 전에 등록되지 않음index.getEvents().FileIndexing.add(...)index.add(...) 보다 먼저 실행되는지 확인합니다.
Search returns no results속성 이름이 일치하지 않음(대소문자 구분)필터 생성 시 정확한 속성 이름(createAttribute("main"))을 사용합니다.
Out‑of‑memory errors on large batches한 배치에 너무 많은 변경이 포함됨큰 업데이트를 여러 개의 AttributeChangeBatch 로 나눕니다.
License not recognized라이선스 파일을 적용하지 않은 체험 JAR 사용인덱스 작업 전에 License license = new License(); license.setLicense("path/to/license.file"); 를 호출합니다.

자주 묻는 질문

Q: Java에서 GroupDocs.Search 를 사용하기 위한 사전 조건은 무엇인가요?
A: Java 8 이상, GroupDocs.Search 라이브러리, 그리고 인덱싱 개념에 대한 기본 지식이 필요합니다.

Q: Maven 으로 GroupDocs.Search 를 설치하려면 어떻게 해야 하나요?
A: Maven Setup 섹션에 표시된 저장소와 의존성을 pom.xml 에 추가하면 됩니다.

Q: 문서가 인덱싱된 뒤에도 속성을 수정할 수 있나요?
A: 네, AttributeChangeBatch 를 사용해 재인덱싱 없이 속성을 일괄 업데이트할 수 있습니다.

Q: 인덱싱 속도가 느린데 어떻게 개선할 수 있나요?
A: JVM 메모리 설정을 최적화하고, 배치 업데이트를 활용하며, 최신 라이브러리 버전을 사용하십시오.

Q: GroupDocs.Search for Java 에 대한 추가 자료는 어디서 찾을 수 있나요?
A: 공식 문서 또는 커뮤니티 포럼을 확인하세요.

리소스


마지막 업데이트: 2026-02-24
테스트 환경: GroupDocs.Search 25.4 for Java
작성자: GroupDocs