GroupDocs.Search Java를 사용한 문서 검색 방법

현대 기업 애플리케이션에서 문서 검색 방법을 빠르고 정확하게 검색하는 것은 중요한 요구 사항입니다. 계약서, 보고서 또는 대규모 문서 저장소를 다루든, GroupDocs.Search for Java는 내장된 퍼지 매칭을 제공하는 강력한 전체 텍스트 검색 엔진을 제공합니다. 이 튜토리얼에서는 라이브러리 설정, 인덱스 생성, 문서 추가, 퍼지 검색 Java 구성 및 결과 검색 과정을 명확하고 대화형 설명과 함께 안내합니다.

빠른 답변

  • 첫 번째 단계는 무엇인가요? Maven을 통해 GroupDocs.Search Java 라이브러리를 설치하거나 직접 다운로드하세요.
  • 인덱스는 어떻게 생성하나요? 디스크의 폴더를 가리키는 Index 객체를 인스턴스화하면 라이브러리가 검색 가능한 구조를 자동으로 구축합니다.
  • 오타가 있는 검색이 가능한가요? 네—퍼지 검색을 활성화하면 철자가 틀리거나 약간 변형된 용어와도 매치됩니다.
  • 문서는 어떻게 추가하나요? Index 인스턴스의 add 메서드를 사용하여 파일이 들어 있는 폴더를 전달합니다.
  • 필요한 Java 버전은? JDK 8 이상을 지원합니다.

GroupDocs.Search 컨텍스트에서 “문서 검색 방법”이란?

**“문서 검색 방법”**은 검색 가능한 인덱스를 구축하고 일치하는 파일을 반환하는 쿼리를 실행하는 과정을 의미하며, 선택적으로 퍼지 로직을 사용해 철자 오류를 허용합니다. GroupDocs.Search는 토큰화, 인덱싱 및 랭킹을 백그라운드에서 처리하므로 비즈니스 로직에 집중할 수 있습니다.

Java용 GroupDocs.Search를 사용하는 이유

GroupDocs.Search는 30개 이상의 파일 형식(DOCX, PDF, TXT, HTML, XLSX 등)을 지원하며 전체 파일을 메모리에 로드하지 않고도 수백 페이지 문서를 인덱싱할 수 있어 일반 서버 하드웨어에서 서브 초 단위의 쿼리 응답을 제공합니다. 퍼지 검색 기능은 쿼리에 오타가 포함되어도 관련 결과를 반환함으로써 사용자 경험을 향상시킵니다.

사전 요구 사항

  • Java Development Kit (JDK): 버전 8 이상.
  • IDE: IntelliJ IDEA, Eclipse 또는 Java 호환 편집기.
  • GroupDocs.Search for Java 라이브러리: Maven을 통해 추가(권장)하거나 JAR을 다운로드합니다.

Java용 GroupDocs.Search 설정 방법

시작하려면 빌드 파일에 GroupDocs.Search 의존성을 추가하고, 저장소 URL에 접근할 수 있는지 확인한 뒤 JDK 버전이 최소 요구 사항을 충족하는지 검증합니다. 라이브러리가 해결되면 코드에서 해당 클래스를 임포트하고, 모든 검색 가능한 데이터가 저장될 디스크상의 인덱스 폴더를 생성할 수 있습니다.

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 릴리스

GroupDocs.Search 문서

인덱스 생성 방법?

Create a persistent index folder where GroupDocs.Search stores tokenized data. Load your first index with a single line of code—new Index("path/to/indexFolder"). The Index class is the core component that represents a searchable collection of documents in memory and on disk.

   import com.groupdocs.search.*;

   String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/SearchResults";
   Index index = new Index(indexFolder);

인덱스에 문서 추가 방법?

Index 인스턴스의 add 메서드를 사용하여 소스 파일이 들어 있는 폴더를 지정합니다. 엔진은 지원되는 형식을 재귀적으로 스캔하고 텍스트 내용을 추출하여 내부 구조를 업데이트합니다. 이 한 번의 호출로 대용량 배치를 효율적으로 처리하여 파일을 개별적으로 처리할 필요가 없습니다.

   String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
   index.add(documentFolder);

퍼지 검색 Java 구성 방법?

FuzzySearchOptions 클래스는 편집 거리와 접두사 길이와 같은 매개변수를 정의하여 검색이 철자 오류에 얼마나 관대하게 동작할지를 제어합니다. SearchOptions 객체는 퍼지 옵션, 결과 제한, 하이라이팅 선호도 등 모든 검색 시 설정을 그룹화합니다. SearchOptions 객체에 FuzzySearchOptions를 설정하여 퍼지 매칭을 활성화합니다. 이렇게 하면 엔진이 구성 가능한 편집 거리 내의 용어를 고려하도록 하여 검색이 철자 오류에 관대해집니다.

  String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Searching/SearchResults";
  Index index = new Index(indexFolder);

검색 작업 수행 방법?

Index 객체에서 search 메서드를 호출하고 쿼리 문자열과 구성된 SearchOptions를 제공합니다. 엔진은 요청을 처리하고, 퍼지 매칭이 활성화된 경우 적용하며, 관련성 점수에 따라 결과를 순위 매깁니다. 검색은 사전 구축된 토큰 구조에서 수행되므로 대규모 인덱스에서도 작업이 빠르게 완료됩니다. 이 메서드는 일치하는 문서, 히트 수 및 하이라이팅된 스니펫을 포함하는 SearchResult 컬렉션을 반환합니다.

  String documentFolder = "YOUR_DOCUMENT_DIRECTORY";
  index.add(documentFolder);

검색 결과 처리 및 표시 방법?

SearchResult는 개별 SearchResultItem 객체를 보유하는 컬렉션으로, 각각 일치하는 문서, 히트 수 및 하이라이팅된 스니펫을 설명합니다. SearchResult 항목을 반복하면서 각 문서의 경로, 발생 횟수 및 일치 구문을 출력합니다. 이 간단한 루프를 사용하면 UI 테이블, 로그 또는 API 응답을 구축하여 문서가 일치한 이유를 정확히 표시할 수 있습니다.

  import com.groupdocs.search.options.*;

  SearchOptions options = new SearchOptions();
  options.getFuzzySearch().setEnabled(true);
  options.getFuzzySearch().setFuzzyAlgorithm(new TableDiscreteFunction(3));

실용적인 적용 사례

문서 검색 방법이 중요한 실제 시나리오:

  1. 법률 문서 관리: 수천 개의 계약서에서 조항이나 당사자를 몇 초 만에 찾아냅니다.
  2. 학술 연구: 검색어에 오타가 있어도 관련 논문을 검색합니다.
  3. 기업 콘텐츠 관리: 보고서, 이메일, 프레젠테이션 전반에 걸쳐 빠르고 오타에 관대한 검색으로 내부 포털을 지원합니다.

성능 고려 사항

  • 인덱스 새로 고침: 소스 파일이 변경될 때마다 add 또는 update를 다시 실행하여 결과를 최신 상태로 유지합니다.
  • 메모리 관리: GroupDocs.Search는 대용량 파일을 스트리밍하므로 500페이지 PDF에서도 메모리 사용량이 낮게 유지됩니다.
  • 청크 인덱싱: 방대한 데이터 집합을 여러 인덱스 폴더로 분할하여 처리 병렬화 및 쿼리 지연 시간 개선을 도모합니다.

자주 묻는 질문

Q: 퍼지 검색 Java란 무엇이며 왜 유용한가요?
A: 퍼지 검색 Java는 근사 문자열 매칭을 가능하게 하여, 오타나 다른 철자에도 불구하고 쿼리가 결과를 반환하도록 하여 최종 사용자 경험을 향상시킵니다.

Q: 새 파일을 추가한 후 인덱스를 어떻게 업데이트하나요?
A: index.add("new/files/folder")를 다시 호출하면 라이브러리가 전체 인덱스를 재구성하지 않고 새 콘텐츠를 지능적으로 병합합니다.

Q: GroupDocs.Search가 암호 보호된 PDF를 처리할 수 있나요?
A: 네—파일을 추가할 때 DocumentLoadOptions에 비밀번호를 제공하면 엔진이 해당 내용을 복호화하고 인덱싱합니다.

Q: 인덱싱할 수 있는 문서 수에 제한이 있나요?
A: 라이브러리는 수백만 개의 파일까지 확장 가능하며, 성능은 하드웨어와 스토리지에 따라 달라지고 고정된 제한은 없습니다.

Q: 더 고급 예제를 어디서 찾을 수 있나요?
A: 사용자 정의 분석기와 결과 순위와 같은 심화 주제는 공식 문서를 참고하세요.

결론

이제 GroupDocs.Search for Java를 사용하여 문서 검색 방법을 알고 있습니다. 인덱스 생성부터 퍼지 검색 Java 활성화 및 결과 처리까지. 이러한 단계를 구현하면 Java 기반 애플리케이션에서 빠르고 오타에 관대한 검색 경험을 제공할 수 있습니다.


마지막 업데이트: 2026-05-28
테스트 환경: GroupDocs.Search 23.10 for Java
작성자: GroupDocs

  String query = "water OR \"Lorem ipsum\"";
  SearchResult result = index.search(query, options);
  for (int i = 0; i < result.getDocumentCount(); i++) {
      FoundDocument document = result.getFoundDocument(i);
      System.out.println("\tDocument: " + document.getDocumentInfo().getFilePath());
      System.out.println("\tOccurrences: " + document.getOccurrenceCount());

      for (FoundDocumentField field : document.getFoundFields()) {
          System.out.println("\t\tField: " + field.getFieldName());
          if (field.getTerms() != null) {
              for (int k = 0; k < field.getTerms().length; k++) {
                  System.out.println("\t\t\t" + field.getTerms()[k] + " - " + field.getTermsOccurrences()[k]);
              }
          }
      }
  }

관련 튜토리얼