Java에서 GroupDocs.Search를 사용한 정규식 검색 방법

수천 개의 텍스트 문서를 검색하는 것은 건초 더미에서 바늘을 찾는 것과 같습니다. Java에서 정규식 검색 방법은 언어의 강력한 정규표현식 엔진을 GroupDocs.Search와 결합하면 손쉽게 수행할 수 있습니다. 이 라이브러리는 번개처럼 빠른 패턴 매칭을 위한 인덱스를 구축합니다. 다음 몇 분 안에 라이브러리 설치, 인덱스 생성, 파일 추가, 그리고 간단한 텍스트 기반 및 객체 지향 정규식 쿼리 실행 방법을 보여드립니다. 끝까지 읽으면 모든 Java 애플리케이션에 강력한 패턴 매칭 검색을 삽입할 준비가 됩니다.

빠른 답변

  • 주요 라이브러리는 무엇인가요? GroupDocs.Search for Java
  • 어떻게 시작하나요? Maven 의존성을 추가하고 Index 객체를 인스턴스화합니다
  • 정규식을 사용해 콘텐츠를 필터링할 수 있나요? 예 – 콘텐츠 필터링 시나리오에 정규식 쿼리를 사용합니다
  • 라이선스가 필요합니까? 프로덕션 사용을 위해 무료 체험 또는 임시 라이선스가 필요합니다
  • 지원되는 JDK 버전은 무엇인가요? Java 8 or higher

정규식 검색이란?

정규식 검색을 사용하면 날짜, 이메일 주소, 반복 문자와 같은 패턴을 여러 파일에서 한 번에 찾을 수 있습니다. 일반 텍스트 쿼리를 강력한 규칙 기반 스캐너로 변환하여 실시간으로 콘텐츠를 추출하거나 차단할 수 있습니다.

왜 정규식 검색에 GroupDocs.Search를 사용해야 할까요?

GroupDocs.Search는 문서를 한 번 인덱싱한 후 모든 쿼리에서 해당 인덱스를 재사용하여 원시 파일 스캔에 비해 최대 10배 빠른 검색을 제공합니다. 이 라이브러리는 30개 이상의 파일 형식(PDF, DOCX, XLSX, PPTX, TXT, HTML 등)을 지원하며 전체 파일을 메모리에 로드하지 않고도 수백 페이지 파일을 처리할 수 있습니다.

필수 조건

  • Java Development Kit (JDK) 8 이상
  • 의존성 관리를 위한 Maven
  • Java 정규식에 대한 기본 지식

필요한 라이브러리 및 의존성

Maven 프로젝트에 GroupDocs.Search를 추가합니다:

<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.License에서 획득하고 애플리케이션 시작 시 로드하십시오.

Java용 GroupDocs.Search 설정

설치 정보

  1. Maven 통합: 위에 표시된 저장소와 의존성을 pom.xml에 추가합니다.
  2. 직접 다운로드: JAR 파일을 프로젝트의 클래스패스에 배치합니다.
  3. 라이선스 적용: 애플리케이션 시작 시 라이선스 파일을 로드합니다.
import com.groupdocs.search.*;

public class SearchSetup {
    public static void main(String[] args) {
        // Initialize the index by specifying a directory.
        String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
        Index index = new Index(indexFolder);

        System.out.println("Index created successfully at: " + indexFolder);
    }
}

핵심 구성 요소

Index 클래스는 문서에서 추출한 검색 가능한 토큰을 저장하는 핵심 구성 요소입니다. 원본 파일을 다시 읽지 않고도 모든 용어나 패턴을 빠르게 조회할 수 있게 합니다.

인덱스 생성 방법

인덱스 생성은 간단합니다: 인덱스 파일이 저장될 폴더 경로를 지정하여 Index 클래스를 인스턴스화합니다. 생성자는 첫 사용 시 필요한 데이터베이스 파일을 만들고 문서 추가 및 검색을 위한 엔진을 준비합니다. 생성 후에는 모든 쿼리에서 동일한 인덱스를 재사용합니다.

String indexFolder = "YOUR_DOCUMENT_DIRECTORY\\output\\AdvancedUsage\\Searching\\RegularExpressionSearch";
Index index = new Index(indexFolder);

문서 추가 방법

파일을 검색 가능하게 만들려면 파일 경로를 가리키는 Document(또는 DocumentInfo) 인스턴스를 사용해 index.add를 호출합니다. 라이브러리는 콘텐츠를 파싱하고 토큰을 추출하여 인덱스에 저장합니다. 이 작업은 단일 파일이나 배치에 대해 수행할 수 있으며, 업데이트는 점진적으로 병합됩니다.

index.add("YOUR_DOCUMENT_DIRECTORY");
system.out.println("Documents added to the index.");

텍스트 형태로 정규식 검색 수행 방법

RegexQuery는 정규식 기반 검색 쿼리를 정의합니다. 평문 패턴으로 RegexQuery를 로드하고 이를 Index의 search 메서드에 전달합니다. 엔진은 인덱스된 토큰에 대해 패턴을 평가하고 일치하는 문서 참조를 반환하여 일회성 조회를 빠르고 간단하게 만듭니다.

String query1 = "^((.)\\2{1,})";

객체 형태로 정규식 검색 수행 방법

RegexQuery는 객체로도 구축할 수 있으며 여러 검색에서 재사용할 수 있습니다. 쿼리를 한 번 정의하고 대소문자 무시 또는 퍼지 매칭과 같은 옵션을 설정한 뒤 index.search를 반복 호출합니다. 동일한 패턴을 다양한 문서 집합에 적용할 때 이 접근 방식은 성능을 향상시킵니다.

SearchResult result1 = index.search(query1);
system.out.println("Number of occurrences found: " + result1.getDocumentCount());

콘텐츠 필터링 정규식 사용 사례

특정 패턴과 일치하는 콘텐츠를 자동으로 차단하거나 표시하기 위해 정규식을 사용할 수 있습니다:

  • 스팸 필터링을 위한 반복 문자 감지
  • 데이터 프라이버시 검사를 위한 신용카드와 유사한 시퀀스 찾기
  • 후속 처리용 날짜 또는 ID 추출

실용적인 적용 사례

  1. 문서 관리 시스템: 패턴(예: 청구서 번호)으로 계약서, 청구서 또는 정책을 찾습니다.
  2. 콘텐츠 중재: 포럼이나 채팅 앱에서 사용자 생성 텍스트를 중재하기 위해 정규식 규칙을 적용합니다.
  3. 데이터 추출: 비구조화된 PDF 또는 Word 파일에서 주문 번호와 같은 구조화된 데이터를 추출합니다.

성능 고려 사항

  • 인덱스 업데이트: 소스 파일이 변경될 때마다 index.add를 호출하여 결과를 최신 상태로 유지합니다.
  • 메모리 관리: 100만 개 이상의 문서가 있는 경우 증분 인덱싱을 활성화하여 힙 사용량을 제어합니다.
  • 정규식 설계: 패턴을 간결하게 유지하십시오; \d{4}-\d{2}-\d{2}와 같은 패턴은 .*와 같은 와일드카드가 많은 표현식보다 3배 빠르게 실행됩니다.

결론

이제 GroupDocs.Search를 사용하여 Java에서 정규식 검색 방법을 알고 있습니다. 라이브러리 설치와 인덱스 생성부터 텍스트 기반 및 객체 지향 쿼리 실행까지. 이 기술을 사용하면 문서 포털, 규정 준수 스캐너, 데이터 마이닝 파이프라인 등 어떤 Java 애플리케이션에도 빠르고 패턴 인식 검색을 추가할 수 있습니다.

자주 묻는 질문

Q: 텍스트 기반과 객체 기반 정규식 쿼리의 차이점은 무엇인가요?
A: 텍스트 기반 쿼리는 빠른 한 줄 코드이며, 객체 기반 쿼리는 재사용 가능하고 타입 안전한 정의를 제공하여 여러 검색에 저장하고 재사용할 수 있습니다.

Q: GroupDocs.Search가 PDF나 Excel 파일과 같은 비텍스트 문서를 인덱싱할 수 있나요?
A: 예, 라이브러리는 PDF, DOCX, XLSX, PPTX 및 30개 이상의 다른 형식에서 검색 가능한 텍스트를 추출합니다.

Q: 새 파일을 추가한 후 기존 검색 인덱스를 어떻게 업데이트하나요?
A: index.add를 새롭거나 수정된 문서와 함께 호출하면 라이브러리가 전체 인덱스를 재구축하지 않고 변경 사항을 병합합니다.

Q: GroupDocs.Search와 함께 정규식을 사용할 때 흔히 발생하는 함정은 무엇인가요?
A: 너무 넓은 패턴(예: .*)은 성능 저하를 일으킬 수 있으며, 잘못된 표현식은 결과를 반환하지 않을 수 있습니다. 항상 샘플 데이터에서 패턴을 테스트하십시오.

Q: 보다 고급 GroupDocs.Search 튜토리얼은 어디서 찾을 수 있나요?
A: 깊이 있는 가이드, API 레퍼런스 및 샘플 프로젝트는 GroupDocs Documentation를 방문하십시오.


마지막 업데이트: 2026-07-31
테스트 대상: GroupDocs.Search 25.4
작성자: GroupDocs

SearchQuery query2 = SearchQuery.createRegexQuery("^(.)\\1{1,}");
SearchResult result2 = index.search(query2);
system.out.println("Occurrences found using object form: " + result2.getDocumentCount());

관련 튜토리얼