PDF 텍스트 추출 Java – GroupDocs.Search로 인덱스 구축

이 실습 가이드에서는 PDF 파일에서 how to extract pdf text java를 발견하고, 추출된 내용을 직렬화하고, 고성능 검색 가능한 인덱스를 만드는 방법을 배웁니다. 내부 지식 베이스, 계약 검색 포털 또는 맞춤형 검색 엔진을 구축하든, 아래 단계는 PDF에서 텍스트를 추출하고 강력한 전체 텍스트 쿼리를 실행하는 모든 과정을 안내합니다. GroupDocs.Search가 전체 프로세스를 원활하고 확장 가능하게 만드는 이유를 살펴보겠습니다.

빠른 답변

index.search 메서드는 생성된 인덱스에 대해 쿼리를 실행하고, 관련 점수와 함께 일치하는 문서 목록을 반환합니다.

  • 주된 목적은 무엇인가요? PDF 파일에서 pdf text java를 추출하고 GroupDocs.Search로 검색 가능한 문서 인덱스를 생성합니다.
  • 어떤 라이브러리 버전인가요? GroupDocs.Search 25.4 (또는 최신 릴리스).
  • 라이선스가 필요합니까? 개발에는 무료 체험판이 작동하며, 프로덕션에는 정식 라이선스가 필요합니다.
  • PDF를 인덱싱할 수 있나요? 예—PDF 텍스트를 추출하고 인덱스에 추가합니다.
  • 검색은 어떻게 수행하나요? 데이터를 추가한 후 index.search(query) 메서드를 사용합니다.

문서 인덱스란?

문서 인덱스는 파일에서 추출된 검색 가능한 용어들의 구조화된 컬렉션입니다. 각 용어를 해당 용어가 나타나는 문서와 매핑하여 대규모 저장소에서 빠른 전체 텍스트 검색을 가능하게 하고, 조회 시간을 분에서 밀리초로 단축하며, 순위 및 관련성 기능을 지원합니다.

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

GroupDocs.Search는 50개 이상의 입력 및 출력 형식을 지원하고, 전체 파일을 메모리에 로드하지 않고도 수백만 개의 문서를 인덱싱할 수 있으며, Boolean, 와일드카드, 근접 연산자를 포함한 풍부한 쿼리 언어를 제공합니다. 이러한 정량화된 기능은 엔터프라이즈 규모 검색 솔루션에 이상적입니다. 또한 내장된 언어 감지, 형태소 분석 및 사용자 정의 가능한 분석기를 제공하여 다국어 콘텐츠의 검색 정확성을 향상시킵니다.

필수 조건

  • GroupDocs.Search for Java (버전 25.4 이상).
  • Java Development Kit (JDK) (GroupDocs 버전과 호환).
  • IntelliJ IDEA 또는 Eclipse와 같은 IDE.
  • 의존성 관리를 위한 Maven.

GroupDocs.Search for 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.Search for Java releases에서 다운로드합니다.

라이선스 획득

  • 무료 체험 – 임시 라이선스로 모든 기능을 테스트합니다.
  • 구매 – 전체 접근 권한 및 우선 지원을 받습니다.

PDF(및 기타 문서)에서 텍스트 추출 방법

Extractor 클래스로 PDF(또는 지원되는 문서)를 로드하고, 추출 옵션을 구성한 뒤 extractText()를 호출합니다. 이 한 줄 호출은 인덱싱 준비가 된 원시 또는 포맷된 텍스트를 반환합니다.

Extractor 클래스는 문서를 읽고 일반 텍스트 또는 포맷된 텍스트를 생성하는 GroupDocs.Search의 핵심 구성 요소입니다.

// ```java
String documentPath = "YOUR_DOCUMENT_DIRECTORY/Lorem ipsum.pdf";
Extractor extractor = new Extractor();
Document document = Document.createFromFile(documentPath);
// ```java
ExtractionOptions extractionOptions = new ExtractionOptions();
extractionOptions.setUseRawTextExtraction(false); // Extract with formatting
ExtractedData extractedData = extractor.extract(document, extractionOptions);

팁: 포맷 없이 일반 텍스트가 필요하면 setUseRawTextExtraction(true)를 설정합니다.

추출된 데이터 직렬화 방법

직렬화는 추출된 텍스트 객체를 바이트 배열로 변환하여 디스크에 저장하거나 네트워크를 통해 전송해 나중에 인덱싱할 수 있게 합니다.

SerializationUtil 유틸리티는 객체를 바이트 스트림으로 변환하고 다시 복원하는 정적 메서드를 제공합니다.

// ```java
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
extractedData.serialize(outputStream);
byte[] serializedArray = outputStream.toByteArray();

추출된 데이터 역직렬화 방법

인덱스를 구축할 준비가 되면, 이전에 저장한 바이트 배열을 원래 추출 객체로 역직렬화합니다.

deserialize 메서드는 추출 결과의 정확한 상태를 복원하여 세션 간 데이터 손실이 없도록 합니다.

// ```java
ByteArrayInputStream inputStream = new ByteArrayInputStream(serializedArray);
ExtractedData deserializedData = ExtractedData.deserialize(inputStream);

문서 인덱스 생성 방법

Index 객체를 인스턴스화하고, 저장 폴더를 지정하며, 용어 벡터와 불용어 처리와 같은 인덱싱 옵션을 구성합니다.

Index 클래스는 모든 용어, 문서 참조 및 메타데이터를 보유하는 검색 가능한 컨테이너를 나타냅니다.

// ```java
String indexFolder = "YOUR_OUTPUT_DIRECTORY/AdvancedUsage/Indexing/SeparateDataExtraction";
com.groupdocs.search.Index index = new com.groupdocs.search.Index(indexFolder);

인덱스에 데이터 추가 및 검색 수행 방법

index.add()를 사용해 역직렬화된 추출 결과를 인덱스에 추가하고, index.search()로 쿼리하여 즉시 결과를 얻습니다.

add 메서드는 문서의 용어를 인덱스에 등록하고, search는 해당 용어에 대해 쿼리를 실행합니다.

// ```java
ExtractedData[] dataToIndex = new ExtractedData[] { deserializedData };
index.add(dataToIndex, new IndexingOptions());
// ```java
String query = "ipsum";
SearchResult result = index.search(query);

전문가 팁: index.search("your query", SearchOptions)를 사용해 관련성 순위를 미세 조정합니다.

일반적인 사용 사례

  1. 문서 관리 시스템 – 계약서, 청구서 또는 정책을 빠르게 찾습니다.
  2. 콘텐츠 기반 검색 엔진 – 전체 텍스트 검색 java 기능으로 내부 지식 베이스에 전력을 제공합니다.
  3. 데이터 아카이빙 솔루션 – 과거 기록을 인덱싱하여 즉시 검색합니다.

성능 고려 사항

setStoreTermVectors(boolean) 메서드는 인덱스에 용어 벡터를 저장할지 여부를 설정하여 인덱스 크기와 쿼리 성능에 영향을 줍니다.

  • 메모리 관리: 500 MB보다 큰 배치를 처리할 때 JVM 힙 크기(e.g., -Xmx4g)를 늘립니다.
  • 인덱싱 옵션: 용어 벡터를 비활성화(setStoreTermVectors(false))하면 인덱스 크기를 최대 30 % 줄일 수 있습니다.
  • 정기 업데이트: GroupDocs.Search를 최신 상태로 유지하세요; 각 마이너 릴리스는 평균 10‑15 % 속도 향상을 포함합니다.

자주 묻는 질문

Q: 매우 큰 PDF 파일을 효율적으로 처리하려면 어떻게 해야 하나요?
A: Extractor를 사용해 파일을 스트리밍하고 청크 단위로 처리합니다; 필요하면 JVM 힙을 늘립니다.

Q: 검색 쿼리 구문을 맞춤 설정할 수 있나요?
A: 예—GroupDocs.Search는 Boolean 연산자, 와일드카드 및 근접 검색을 지원합니다.

Q: 직렬화가 실패하면 어떻게 해야 하나요?
A: 모든 객체가 Serializable을 구현했는지 확인하고, IOException을 잡아 상세 정보를 로그에 기록합니다.

Q: 문서의 특정 섹션만 인덱싱할 수 있나요?
A: 물론입니다—인덱싱 전에 ExtractionOptions를 설정해 페이지 또는 섹션을 필터링합니다.

Q: 최신 GroupDocs.Search 버전으로 업그레이드하려면 어떻게 해야 하나요?
A: pom.xml의 버전 번호를 업데이트하고 mvn clean install을 실행합니다; 마이그레이션 가이드를 검토해 브레이킹 체인지가 있는지 확인합니다.

리소스


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

관련 튜토리얼