GroupDocs.Search for Java를 사용한 텍스트 검색 수행
성능 최적화
GroupDocs.Search for Java를 사용한 검색 네트워크 구현 및 최적화 방법
소개
오늘날 데이터 중심의 세상에서 텍스트 검색 수행 능력은 방대한 문서 컬렉션을 빠르게 탐색할 수 있게 해 주는 경쟁력입니다. 내부 지식 베이스, 법률 사건 저장소, 전자상거래 제품 카탈로그 등 어떤 시스템을 구축하든, 잘 튜닝된 검색 네트워크는 사용자 만족도를 크게 향상시킬 수 있습니다. 이 가이드에서는 검색 네트워크 설정, 검색 가능한 인덱스 생성, 검색 성능 최적화, 그리고 필요 시 문서 인덱스 삭제 방법을 모두 GroupDocs.Search for Java를 사용해 배우게 됩니다.
배우게 될 내용
- GroupDocs.Search를 사용한 검색 네트워크 구성
- 네트워크 내 노드 배포
- 문서 효율적 인덱싱 (
index documents java) - 네트워크 전체에서 텍스트 검색 수행 (
perform text search) - 인덱스에서 특정 문서 삭제 (
delete documents index)
이 기능들을 활용해 최적화된 검색 경험을 만드는 방법을 살펴보겠습니다.
빠른 답변
- GroupDocs.Search for Java의 주요 목적은 무엇인가요? 다양한 문서 형식에 대한 전체 텍스트 검색을 제공합니다.
- 분산 환경에서 텍스트 검색을 어떻게 수행하나요? 검색 네트워크를 배포하고, 마스터 노드에서 문서를 인덱싱한 뒤, 어느 노드에서든 쿼리를 실행합니다.
- 인덱스를 재구성하지 않고 문서를 삭제할 수 있나요? 예, Delete API를 사용해 선택한 파일을 제거하면 됩니다.
- 필요한 Java 버전은 무엇인가요? JDK 8 이상.
- 프로덕션에 라이선스가 필요합니까? 유효한 GroupDocs.Search 라이선스가 필요합니다; 무료 체험판을 이용할 수 있습니다.
“perform text search”란 무엇인가요?
텍스트 검색 수행은 전체 텍스트 인덱스를 조회해 지정된 키워드나 구문이 포함된 문서를 찾아내는 작업을 의미합니다. GroupDocs.Search는 역색인을 구축하여 수천 개 파일에서도 매우 빠른 조회를 가능하게 합니다.
왜 검색 네트워크를 설정해야 할까요?
검색 네트워크는 인덱싱 및 쿼리 작업을 여러 노드에 분산시켜 검색 성능을 최적화하고, 수평 확장을 가능하게 하며, 높은 가용성을 유지합니다. 이 아키텍처는 지연 시간과 처리량이 중요한 엔터프라이즈 수준 문서 저장소에 이상적입니다.
전제 조건
- 필수 라이브러리: GroupDocs.Search for Java 버전 25.4 (최신).
- 환경: Java JDK 8+, Maven.
- 지식: 기본 Java 프로그래밍 및 네트워크 개념에 대한 이해.
GroupDocs.Search for Java 설정
시작하려면 다음 설정을 통해 GroupDocs.Search를 Java 프로젝트에 통합합니다.
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>
직접 다운로드
또는 GroupDocs에서 최신 버전을 직접 다운로드할 수 있습니다: download the latest version directly from GroupDocs.
라이선스 획득
GroupDocs는 무료 체험판을 제공하므로 구매 전 기능을 평가할 수 있습니다. 임시 라이선스는 구매 페이지의 안내에 따라 얻을 수 있으며, 테스트 단계에서 전체 기능을 사용할 수 있게 해 줍니다.
기본 초기화 및 설정
Java 애플리케이션에서 GroupDocs.Search를 초기화하려면 다음 코드를 사용합니다:
import com.groupdocs.search.*;
class SearchNetworkSetup {
public static void main(String[] args) {
Index index = new Index("path/to/index/directory");
// Additional configuration can be set here.
}
}
구현 가이드
검색 네트워크 구성
개요: 검색 네트워크가 원활히 통신하도록 기본 경로와 포트를 설정합니다.
단계 1: 기본 구성 정의
import com.groupdocs.search.options.*;
import com.groupdocs.search.scaling.configuring.*;
String basePath = "YOUR_DOCUMENT_DIRECTORY/output/AdvancedUsage/Scaling/DeletingDocuments/";
int basePort = 49104; // Change if necessary.
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
- 매개변수:
basePath: 네트워크 작업을 위한 디렉터리 경로.basePort: 검색 네트워크에서 사용할 포트 번호.
단계 2: 문제 해결
지정한 포트가 방화벽에 차단되었거나 다른 애플리케이션에서 사용 중인지 확인하고, 충돌을 피하도록 필요에 따라 조정합니다.
검색 네트워크 노드 배포
개요: 구성 정보를 활용해 네트워크 전반에 걸쳐 노드를 배포하여 분산 인덱싱 및 검색을 수행합니다.
import com.groupdocs.search.scaling.*;
String basePath = "YOUR_DOCUMENT_DIRECTORY/output/AdvancedUsage/Scaling/DeletingDocuments/";
int basePort = 49104;
Configuration configuration = ConfiguringSearchNetwork.configure(basePath, basePort);
SearchNetworkNode[] nodes = SearchNetworkDeployment.deploy(basePath, basePort, configuration);
// Nodes are now deployed and ready for further operations.
- 핵심 구성 옵션:
- Base Path & Port: 초기 구성에서 사용한 값과 일치해야 일관성을 유지할 수 있습니다.
문서 인덱싱 (create searchable index)
개요: 마스터 노드를 이용해 문서를 검색 인덱스에 효율적으로 추가합니다.
import com.groupdocs.search.scaling.*;
String documentsPath = "YOUR_DOCUMENT_DIRECTORY/path/to/documents";
SearchNetworkNode masterNode = nodes[0];
IndexingDocuments.addDirectories(masterNode, documentsPath);
- 목적:
masterNode: 문서 인덱싱을 관리하는 주요 노드.documentsPath: 문서가 들어 있는 디렉터리 경로.
문제 해결 팁
문서 경로가 정확하고 접근 가능한지 확인하십시오. 해당 디렉터리에 대한 읽기 권한이 있어야 합니다.
네트워크에서 텍스트 검색 (perform text search)
개요: 인덱싱된 네트워크 전체에서 포괄적인 텍스트 검색을 수행합니다.
import com.groupdocs.search.scaling.*;
String query = "nulla";
SearchNetworkNode masterNode = nodes[0];
TextSearchInNetwork.searchAll(masterNode, query, false);
- 매개변수:
query: 검색하려는 텍스트.masterNode: 검색을 수행하는 노드.
인덱스에서 문서 삭제 (delete documents index)
개요: 파일 경로를 이용해 인덱스에서 특정 문서를 제거합니다.
import com.groupdocs.search.scaling.*;
SearchNetworkNode node = nodes[0];
String[] filePaths = {
"YOUR_DOCUMENT_DIRECTORY/Lorem ipsum.pdf",
"YOUR_DOCUMENT_DIRECTORY/Lorem ipsum.docx"
};
deleteDocuments(node, filePaths);
void deleteDocuments(SearchNetworkNode node, String... filePaths) {
Indexer indexer = node.getIndexer();
DeleteOptions options = new DeleteOptions();
indexer.delete(filePaths, options);
}
- 메서드 목적:
node: 삭제 작업을 수행할 대상 노드.filePaths: 인덱스에서 제거할 문서들의 경로.
문제 해결
파일 경로가 정확한지, 해당 파일이 디렉터리에 존재하는지 확인하십시오. 문제가 지속되면 네트워크 권한 및 연결 상태를 점검합니다.
실제 적용 사례
- 엔터프라이즈 문서 관리: 내부 지식 검색을 효율화.
- 법률 사건 분석: 여러 저장소에 걸친 관련 사건 파일을 신속히 찾음.
- 전자상거래 플랫폼: 제품 설명 및 리뷰 인덱싱으로 검색 속도 향상.
- 학술 연구: 논문 및 학위 논문 대형 디지털 라이브러리 검색 최적화.
- 고객 지원 시스템: 과거 티켓을 즉시 검색해 응답 시간을 단축.
성능 고려 사항
- 인덱싱 속도 최적화: 비활성 시간대에 새 문서를 점진적으로 추가해 지연 시간을 낮게 유지합니다.
- 리소스 사용 가이드라인: 노드 수를 확장할 때 CPU와 메모리를 지속적으로 모니터링합니다.
- Java 메모리 관리: 워크로드에 맞게 JVM 힙 설정을 조정합니다 (예: 중간 규모 인덱스에는
-Xmx2g).
결론
이 가이드를 따라 검색 네트워크 설정, 검색 가능한 인덱스 생성, 텍스트 검색 수행, 그리고 문서 인덱스 삭제를 GroupDocs.Search for Java로 구현하는 방법을 배웠습니다. 이러한 기능을 통해 분산 환경에서도 빠르고 안정적인 문서 검색이 가능합니다.
다음 단계
- 다양한 노드 구성을 실험해 워크로드에 최적의 균형을 찾습니다.
- 사용자 정의 분석기와 관련성 튜닝 등 고급 인덱싱 옵션을 깊이 탐구합니다.
- 다른 GroupDocs 제품과의 통합을 검토해 문서 처리 전 과정을 자동화합니다.
자주 묻는 질문
Q: GroupDocs.Search for Java의 주요 사용 사례는 무엇인가요?
A: 다양한 문서 형식에 대한 전체 텍스트 검색을 제공하여 대규모 저장소에서 텍스트 검색 수행을 가능하게 합니다.
Q: 대규모 네트워크에서 검색 속도를 어떻게 향상시킬 수 있나요?
A: 추가 노드를 배포하고, JVM 힙을 튜닝하며, 인덱싱을 트래픽이 적은 시간대에 예약해 검색 성능을 최적화합니다.
Q: 전체 컬렉션을 재인덱싱하지 않고 단일 문서를 삭제할 수 있나요?
A: 예, 코드 예제에 나온 delete documents index API를 사용해 특정 파일만 제거하면 됩니다.
Q: 개발에 라이선스가 필요합니까?
A: 테스트용으로는 무료 체험 라이선스로 충분하지만, 프로덕션 배포 시에는 상용 라이선스가 필요합니다.
Q: PDF, Word 파일, 이메일 등을 동시에 인덱싱할 수 있나요?
A: 물론입니다—GroupDocs.Search는 기본적으로 다양한 형식을 지원합니다.
Last Updated: 2026-01-16
Tested With: GroupDocs.Search for Java 25.4
Author: GroupDocs