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");
실무 적용 사례
- 문서 관리 시스템 – 수집 단계에서 메타데이터를 자동으로 추가해 분류를 자동화합니다.
- 대용량 콘텐츠 아카이브 – 속성 필터를 활용해 검색 범위를 좁혀 응답 시간을 크게 단축합니다.
- 규정 준수 및 보고 – 보존 일정이나 감사 추적을 위해 문서를 동적으로 태깅합니다.
성능 고려 사항
- 메모리 관리 – JVM 힙을 모니터링하고 필요에 따라
-Xmx옵션을 조정합니다. - 배치 처리 –
AttributeChangeBatch로 속성 변경을 그룹화해 인덱스 쓰기를 최소화합니다. - 라이브러리 업데이트 – 최신 성능 패치를 적용하려면 GroupDocs.Search 를 최신 버전으로 유지합니다.
흔히 발생하는 문제와 해결 방법
| Issue | Why It Happens | How 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: 공식 문서 또는 커뮤니티 포럼을 확인하세요.
리소스
- 문서: GroupDocs.Search for Java Docs
- API 레퍼런스: API Reference
- 다운로드: Latest Releases
- GitHub: GitHub GroupDocs.Search
- 무료 지원 포럼: GroupDocs Forums
- 임시 라이선스: License Page
마지막 업데이트: 2026-02-24
테스트 환경: GroupDocs.Search 25.4 for Java
작성자: GroupDocs