java 전체 텍스트 검색 – 문서 추가 및 GroupDocs.Search와 병합
현대 기업 환경에서 java 전체 텍스트 검색은 견고한 문서 관리 java 시스템의 핵심입니다. 계약서, 청구서 또는 내부 보고서를 인덱싱해야 하든, 잘 설계된 인덱스를 통해 밀리초 단위로 정확한 정보를 검색할 수 있습니다. 이 튜토리얼에서는 인덱스 생성, 문서 추가, 병합 옵션 구성 및 병합 작업을 안전하게 취소하는 방법을 모두 GroupDocs.Search for Java를 사용하여 안내합니다.
빠른 답변
- “add documents to index”가 의미하는 바는? GroupDocs.Search에 폴더를 스캔하고 검색 가능한 토큰을 추출하며 각 파일에 대한 메타데이터를 저장하도록 지시합니다.
- 긴 병합을 중단할 수 있나요? 예—구성 가능한 시간 초과 후 병합을 중단하려면
Cancellation객체를 사용합니다. - 라이선스가 필요합니까? 테스트용으로는 무료 체험 또는 임시 라이선스가 작동하며, 상업용 라이선스를 사용하면 전체 기능을 이용할 수 있습니다.
- 필요한 Java 버전은? JDK 8 이상.
- 대규모 데이터셋에 적합한가요? 물론입니다—GroupDocs.Search는 증분 인덱싱을 통해 수백 페이지 문서를 처리할 수 있습니다.
GroupDocs.Search에서 “add documents to index”란 무엇인가요?
문서를 인덱스에 추가한다는 것은 파일 컬렉션을 GroupDocs.Search에 제공하여 라이브러리가 내용을 분석하고 토큰을 추출하며 검색 가능한 데이터 구조를 구축하도록 하는 것입니다. 이 과정은 모든 인덱스된 파일에 대해 번개처럼 빠른 전체 텍스트 쿼리를 가능하게 하는 압축된 표현을 생성합니다.
문서 관리 java에 GroupDocs.Search를 사용하는 이유
GroupDocs.Search는 50개 이상의 입력 형식(PDF, DOCX, XLSX, PPTX, HTML, 이미지 등)에 대한 확장 가능한 인덱싱을 제공하며, 전체 파일을 메모리에 로드하지 않고도 최대 2 GB 문서를 처리할 수 있습니다. API를 통해 인덱싱, 병합 및 취소에 대한 세밀한 제어가 가능해 기업 수준의 java 전체 텍스트 검색 솔루션에 최적의 선택이 됩니다.
전제 조건
- GroupDocs.Search for Java 버전 25.4 이상.
- Maven(또는 수동 JAR 다운로드).
- 기본 Java 지식 및 JDK 8+ 환경.
GroupDocs.Search for Java 설정
Maven 설치
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>
직접 다운로드
또는 공식 사이트에서 최신 JAR를 다운로드하십시오: GroupDocs.Search for Java releases.
라이선스 획득
- 무료 체험: GroupDocs 웹사이트에서 체험 라이선스에 등록하십시오.
- 임시 라이선스: 장기 평가가 필요하면 임시 키를 신청하십시오.
- 상업용 라이선스: 운영용으로 구매하십시오.
라이선스 파일을 확보한 후 프로젝트에 배치하고 아래에 표시된 대로 라이브러리를 초기화하십시오.
구현 가이드
문서를 인덱스에 추가 – 첫 번째 인덱스 생성
Index 클래스를 인스턴스화하여 빈 인덱스를 로드하거나 생성합니다. 이 클래스는 디스크상의 검색 가능한 컨테이너를 나타냅니다. 이 단계는 문서에서 생성될 모든 토큰을 저장할 위치를 준비합니다.
import com.groupdocs.search.Index;
// Create an instance of the index at the specified path
Index index1 = new Index("YOUR_DOCUMENT_DIRECTORY\\\\Index1");
- 이유: 이 단계는 인덱싱된 토큰이 저장될 저장소 컨테이너를 설정합니다.
인덱스에 문서 추가
폴더 경로와 함께 index.add를 호출합니다; 이 메서드는 각 파일을 스캔하고 텍스트를 추출하며 검색 가능한 메타데이터를 인덱스에 저장합니다. 작업은 한 번의 패스로 실행되며 구성된 IndexSettings를 준수합니다.
index1.add("YOUR_DOCUMENT_DIRECTORY"); // Add documents from this directory
- 이유: 라이브러리가 각 파일을 읽고 텍스트를 추출하여
index1에 저장합니다.
유연한 워크플로를 위한 두 번째 인덱스 생성
별도의 문서 세트를 보관하기 위해 또 다른 Index 객체를 인스턴스화하여 병합 전 격리된 처리를 가능하게 합니다. 이 패턴은 다중 테넌트 시나리오나 단계적 인덱싱에 유용합니다.
Index index2 = new Index("YOUR_DOCUMENT_DIRECTORY\\\\Index2");
index2.add("YOUR_DOCUMENT_DIRECTORY");
- 이유: 여러 인덱스를 사용하면 별개의 문서 세트를 관리하고 나중에 결합할 수 있습니다.
병합 옵션 구성 및 병합 작업 취소 방법
MergeOptions 인스턴스를 생성하고 원하는 매개변수를 설정한 뒤, 지정된 시간 초과 후 병합을 중단하는 Cancellation 토큰을 연결합니다. 이를 통해 대규모 병합 시 리소스 사용을 완전히 제어할 수 있습니다.
import com.groupdocs.search.options.MergeOptions;
import com.groupdocs.search.options.Cancellation;
MergeOptions options = new MergeOptions();
options.setCancellation(new Cancellation()); // Initialize cancellation object
options.getCancellation().cancelAfter(5000); // Cancel merge operation after 5 seconds
- 이유:
Cancellation은 병합 작업을 자동으로 취소하도록 제어권을 제공하여 작업이 무한히 진행되는 것을 방지합니다.
인덱스 병합
index1.merge(index2, mergeOptions)를 호출합니다; 기본 인덱스는 토큰 무결성을 유지하면서 보조 인덱스의 모든 문서를 흡수합니다. 병합 후에는 통합된 검색 가능한 저장소가 됩니다.
index1.merge(index2, options);
- 이유: 이 호출 후
index1은 두 소스의 모든 문서를 포함하게 되어 통합된 검색 경험을 제공합니다.
문서 관리 Java 실용 사례
- 법률 사무소: 여러 사무소의 사건 파일을 단일 검색 인덱스로 통합합니다.
- 금융 기관: 분기 보고서를 통합 저장소에 병합하여 빠른 감사 쿼리를 지원합니다.
- 기업: 인사 정책, 준수 매뉴얼 및 내부 가이드를 결합하여 전사적 검색을 구현합니다.
성능 고려 사항
- 증분 인덱싱: 전체 인덱스를 재구축하는 대신 새 파일을 주기적으로 추가합니다.
- 메모리 모니터링: 대용량 배치는 RAM을 많이 사용할 수 있으므로 파일을 작은 청크로 처리하거나 스트리밍 모드를 활성화합니다.
- 가비지 컬렉션: 사용되지 않는
Index객체를 즉시 해제하여 리소스를 확보합니다. - SSD 저장소: 인덱스 파일을 SSD에 저장하면 병합 속도가 최대 2배 향상될 수 있습니다.
일반적인 문제 및 해결책
| 문제 | 해결책 |
|---|---|
| 잘못된 폴더 경로 | 절대 경로를 확인하고 애플리케이션에 읽기 권한이 있는지 확인합니다. |
| 메모리 부족 | JVM 힙(-Xmx)을 늘리거나 파일을 배치로 인덱싱합니다. |
| 취소가 트리거되지 않음 | merge 호출 전에 cancelAfter가 설정되어 있는지 확인합니다. |
| 지원되지 않는 파일 형식 | 필요에 따라 GroupDocs에서 추가 형식 플러그인을 설치합니다. |
자주 묻는 질문
Q: 왜 하나의 인덱스 대신 여러 인덱스를 만들까요?
A: 별도의 인덱스를 사용하면 데이터 도메인을 격리하고, 서로 다른 보안 정책을 적용하며, 필요할 때만 병합할 수 있어 성능과 관리가 향상됩니다.
Q: 인덱싱 작업을 병합 취소와 같은 방식으로 취소할 수 있나요?
A: 예—add 메서드와 함께 Cancellation 객체를 사용하여 장시간 실행되는 인덱싱 작업을 중단할 수 있습니다.
Q: 매우 큰 문서 컬렉션에서 최적의 성능을 보장하려면 어떻게 해야 하나요?
A: 증분 인덱싱을 수행하고 JVM 메모리를 모니터링하며 인덱스를 SSD에 저장하십시오. 메모리 내 문서 수를 제한하려면 BatchSize 설정을 사용하는 것을 고려하세요.
Q: “Access denied”(액세스 거부) 오류가 발생하면 어떻게 해야 하나요?
A: Java 프로세스를 실행하는 사용자의 폴더 권한을 확인하고 라이선스 파일이 읽기 가능한지 확인하십시오.
Q: GroupDocs.Search가 다른 GroupDocs 라이브러리와 호환되나요?
A: 물론입니다—GroupDocs.Viewer, GroupDocs.Conversion 등과 통합하여 전체 스택 문서 솔루션을 구축할 수 있습니다.
결론
이 가이드를 따라 하면 이제 문서를 인덱스에 추가하는 방법, 병합 동작을 구성하는 방법, 필요 시 안전하게 병합 작업을 취소하는 방법을 알게 되었습니다—모두 견고한 java 전체 텍스트 검색 워크플로 내에서 수행됩니다. 더 큰 데이터셋으로 실험하고, 맞춤 토크나이저를 탐색하거나 GroupDocs.Search를 다른 GroupDocs 제품과 결합하여 엔터프라이즈 수준의 솔루션을 구축해 보세요.
리소스
- 문서: GroupDocs.Search Java Docs
- API 레퍼런스: GroupDocs API Reference
- 다운로드: Latest Releases
- GitHub 저장소: GroupDocs Search for Java
- 무료 지원 포럼: GroupDocs Forum
- 임시 라이선스 신청: GroupDocs Temporary License
- 마지막 업데이트: 2026-05-12
- 테스트 환경: GroupDocs.Search 25.4 for Java
- 작성자: GroupDocs