검색 네트워크를 위한 GroupDocs Maven 의존성 추가 방법

빠른 답변

  • GroupDocs Maven 의존성은 무엇인가요? Java 프로젝트용 GroupDocs.Search 라이브러리를 포함하는 Maven 아티팩트입니다.
  • 검색 네트워크를 사용하는 이유는? 인덱싱 및 쿼리 부하를 여러 노드에 분산시켜 속도와 안정성을 향상시킵니다.
  • 디렉터리를 인덱스에 추가하려면? 마스터 노드에서 IndexingDocuments.addDirectories를 사용합니다.
  • 샤드를 동기화하려면? 각 노드의 Indexer에서 SynchronizeOptions를 호출합니다.
  • 라이선스가 필요합니까? 예, 프로덕션 사용을 위해서는 체험판 또는 상업용 라이선스가 필요합니다.

GroupDocs Maven 의존성이란?

GroupDocs Maven 의존성은 Java 프로젝트용 GroupDocs.Search 라이브러리를 포함하는 Maven 아티팩트입니다.
검색 가능한 인덱스를 생성하고, 네트워크 노드를 관리하며, 빠른 쿼리를 실행하는 데 필요한 모든 클래스를 제공하고, Maven은 전이적 의존성을 자동으로 해결하여 pom.xml에 몇 줄만 추가하면 바로 사용할 수 있는 검색 엔진을 제공합니다.

GroupDocs Maven 의존성 추가 방법

pom.xml에 저장소와 의존성 항목을 추가한 후 mvn clean install을 실행합니다; Maven은 groupdocs-search JAR와 필요한 라이브러리를 다운로드하여 API를 프로젝트에서 사용할 수 있게 합니다. 빌드가 성공하면 바로 com.groupdocs.search 클래스를 사용할 수 있습니다.

Maven 구성

Add the repository and dependency to your 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>

Pro tip: 공식 릴리스 페이지를 확인하여 버전 번호를 최신 상태로 유지하세요.

공식 사이트에서 JAR를 직접 다운로드할 수도 있습니다: GroupDocs.Search for Java releases.

검색 네트워크를 사용하는 이유

검색 네트워크는 인덱스를 별도의 노드에 존재하는 샤드로 분할함으로써 수평 확장을 가능하게 합니다. GroupDocs.Search는 50개 이상의 입력 형식을 처리하고 수백 페이지 문서를 전체 파일을 메모리에 로드하지 않고도 처리하여 데이터 양이 증가해도 서브 초 단위의 쿼리 응답을 제공합니다.

사전 요구 사항

  • JDK(11 이상) 설치
  • IntelliJ IDEA 또는 Eclipse와 같은 IDE
  • 기본 Java 지식, Maven 사용 경험, 네트워크 노드 개념에 대한 이해
  • 유효한 GroupDocs.Search 라이선스(무료 체험 또는 상업용)

기본 초기화 및 설정

먼저 인덱스 디렉터리를 생성합니다:

import com.groupdocs.search.SearchIndex;
import com.groupdocs.search.options.IndexingOptions;

// Create an index in the specified directory
SearchIndex index = new SearchIndex("YOUR_INDEX_DIRECTORY");

구현 가이드

기능 1: 검색 네트워크 구성

개요

검색 네트워크를 구성하면 노드가 통신에 사용할 파일 경로와 포트를 설정합니다.

경로 및 포트 설정

Configuration은 검색 클러스터의 네트워크 경로, 포트 및 기타 설정을 보유하는 클래스입니다.

import com.groupdocs.search.options.*;
import com.groupdocs.search.scaling.configuring.ConfiguringSearchNetwork;

// Set custom paths for input/output directories
String basePath = "YOUR_DOCUMENT_DIRECTORY/AdvancedUsage/Scaling/SynchronizingShards/";
int basePort = 49144; // Adjust if there's a port conflict

Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);

configuration 객체는 이제 검색 네트워크에 필요한 모든 설정을 보유합니다.

기능 2: 검색 네트워크 노드 배포

개요

노드를 배포하여 네트워크 전반에 작업 부하를 분산합니다. 마스터 노드는 작업 및 이벤트를 관리합니다.

배포 코드

SearchNetworkNode는 마스터 또는 워커 역할을 할 수 있는 검색 네트워크의 노드를 나타냅니다.

import com.groupdocs.search.scaling.*;
import com.groupdocs.search.options.Configuration;

SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
// Retrieve the master node for further operations
SearchNetworkNode masterNode = nodes[0];

기능 3: 검색 네트워크 노드 이벤트 구독

개요

이벤트를 수신하면 네트워크의 변경이나 업데이트를 동적으로 처리할 수 있습니다.

구독 구현

SearchNetworkNodeEvents는 노드 수명 주기 및 인덱싱 작업에 대한 이벤트 훅을 제공합니다.

import com.groupdocs.search.scaling.SearchNetworkNode;
import com.groupdocs.search.scaling.SearchNetworkNodeEvents;

SearchNetworkNodeEvents.subscribe(masterNode);

기능 4: 인덱스에 디렉터리 추가

개요

디렉터리를 추가하는 것은 문서를 검색 가능하게 만드는 핵심 단계입니다.

문서 추가

IndexingDocuments.addDirectories는 처리할 폴더 경로를 인덱스에 추가합니다.

import com.groupdocs.search.indexing.IndexingDocuments;
import com.groupdocs.search.scaling.SearchNetworkNode;

IndexingDocuments.addDirectories(masterNode, "YOUR_DOCUMENT_DIRECTORY/DocumentsPath");

기능 5: 검색 네트워크 노드에서 샤드 동기화

개요

동기화는 모든 샤드 간 데이터 일관성을 보장합니다.

동기화 코드

SynchronizeOptions는 노드 간 샤드 동기화 방식을 구성합니다.

import com.groupdocs.search.indexing.Indexer;
import com.groupdocs.search.scaling.SearchNetworkNode;
import com.groupdocs.search.options.SynchronizeOptions;

SearchNetworkNode node = null; // Assume 'node' is initialized as a SearchNetworkNode

def synchronizeShards(SearchNetworkNode node) {
    Indexer indexer = node.getIndexer();
    SynchronizeOptions options = new SynchronizeOptions();
    indexer.synchronize(options);
}

기능 6: 검색 네트워크 노드 종료

개요

노드를 올바르게 종료하면 리소스를 해제하고 메모리 누수를 방지합니다.

노드 종료

close()는 리소스를 해제하고 검색 네트워크 노드를 종료합니다.

import com.groupdocs.search.scaling.SearchNetworkNode;

for (SearchNetworkNode node : nodes) {
    node.close();
}

실용적인 적용 사례

  1. 법률 문서 관리 – 사건 파일 및 판례를 빠르게 검색합니다.
  2. 재무 기록 관리 – 재무 제표와 감사 로그를 몇 초 안에 접근합니다.
  3. 학술 연구 – 수천 개 논문을 검색하여 관련 인용을 찾습니다.

성능 고려 사항

  • 쿼리 최적화 – 응답 시간을 줄이기 위해 간결한 쿼리를 작성합니다.
  • 메모리 관리 – JVM 힙 사용량을 모니터링하고, 대형 인덱스의 경우 GC 튜닝을 고려합니다.
  • 스케일링 전략 – 데이터 양과 쿼리 부하에 비례하여 노드를 추가합니다.

일반적인 문제와 해결책

문제원인해결책
노드 연결 실패포트 충돌basePort를 사용되지 않는 값으로 변경
인덱스가 업데이트되지 않음이벤트 구독 누락SearchNetworkNodeEvents.subscribe(masterNode)가 호출되었는지 확인
높은 지연 시간샤드 부족노드 수를 늘리고 문서 분배를 균형 있게 조정

자주 묻는 질문

Q: GroupDocs.Search를 사용하는 주요 이점은 무엇인가요?
A: 최소한의 구성으로 대용량 문서 세트에 대해 빠르고 확장 가능한 검색 기능을 제공합니다.

Q: 검색 네트워크에서 노드 구성을 사용자 정의할 수 있나요?
A: 예, Configuration 객체를 통해 사용자 정의 경로, 포트 및 기타 옵션을 설정할 수 있습니다.

Q: 네트워크가 실행 중일 때 디렉터리를 인덱스에 추가하려면 어떻게 해야 하나요?
A: 새 폴더를 인덱싱해야 할 때마다 IndexingDocuments.addDirectories(masterNode, "path")를 호출합니다.

Q: 새로운 노드가 네트워크에 합류할 때 샤드를 동기화하려면 어떻게 해야 하나요?
A: 위에서 보여준 synchronizeShards 메서드를 새로 추가된 노드에서 사용합니다.

Q: 개발에 라이선스가 필요합니까?
A: 테스트에는 무료 체험 라이선스로 충분하며, 프로덕션에는 상업용 라이선스가 필요합니다.

결론

이 가이드를 따라 하면 GroupDocs Maven 의존성을 추가하고, 다중 노드 검색 네트워크를 구성하며, 디렉터리를 인덱싱하고 샤드를 동기화하는 방법을 알게 됩니다. 이러한 단계는 조직의 요구에 맞춰 확장 가능한 고성능 문서 검색 솔루션의 기반을 마련합니다.


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

관련 튜토리얼