PDF Java에서 텍스트 추출: GroupDocs.Search로 문서 인덱스 구축

이 실습 가이드에서는 PDF Java 애플리케이션에서 텍스트를 추출하고 해당 원시 콘텐츠를 빠르고 전체 텍스트 검색이 가능한 인덱스로 전환하는 방법을 알아봅니다. 내부 지식 베이스, 계약 검색 포털 또는 맞춤형 검색 엔진을 구축하든, 아래 단계에서는 PDF에서 텍스트를 추출하고 데이터를 직렬화하며 인덱스를 생성하고 최종적으로 쿼리를 실행하는 전체 과정을 안내합니다. 이제 시작하여 GroupDocs.Search가 전체 프로세스를 얼마나 원활하고 확장 가능하게 만드는지 확인해 보세요.

빠른 답변

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

문서 인덱스란?

문서 인덱스는 파일에서 추출한 검색 가능한 용어를 구조화한 컬렉션입니다. 문서 인덱스를 생성하면 대규모 저장소에서 빠른 전체 텍스트 검색이 가능해져 검색 속도와 정확성이 크게 향상됩니다.

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

  • Robust extraction – PDFs, Word, Excel 등 다양한 형식을 처리합니다.
  • Easy serialization – 추출된 데이터를 바이트 배열로 저장하여 나중에 재사용합니다.
  • Scalable indexing – 수백만 개의 문서를 효율적으로 인덱싱합니다.
  • Powerful query language – 복잡한 전체 텍스트 검색 Java 쿼리를 지원합니다.

사전 요구 사항

  • GroupDocs.Search for Java (버전 25.4 이상).
  • Java Development Kit (JDK) – 사용 중인 GroupDocs 버전과 호환되는 JDK.
  • 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 릴리스에서 다운로드합니다.

라이선스 획득

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

단계별 구현

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

원시 또는 형식화된 텍스트를 추출하는 것이 문서 인덱스를 만드는 첫 단계입니다. PDF Java에서 텍스트를 추출하면 검색 엔진이 이해할 수 있는 데이터를 제공하게 됩니다.

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

Tip: 서식 없는 순수 텍스트가 필요하면 setUseRawTextExtraction(true)를 설정합니다.

추출된 데이터를 직렬화하는 방법

직렬화를 통해 추출된 데이터를 나중에 인덱싱할 수 있도록 저장합니다.

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

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

인덱스를 구축할 준비가 되면 바이트 배열을 객체로 다시 변환합니다.

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

문서 인덱스 생성 방법

deserializedData를 확보했으므로 검색 가능한 용어를 보관할 인덱스를 생성할 수 있습니다.

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

데이터를 인덱스에 추가하고 검색 수행하기

데이터를 추가하고 인덱스를 쿼리하면 PDF Java에서 텍스트를 추출 워크플로가 완료됩니다.

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

Pro tip: index.search("your query", SearchOptions)를 사용하여 관련성 순위를 미세 조정합니다.

일반적인 사용 사례

  1. Document Management Systems – 계약서, 청구서 또는 정책을 빠르게 찾을 수 있습니다.
  2. Content‑Based Search Engines – 전체 텍스트 검색 Java 기능을 활용해 내부 지식 베이스에 동력을 제공합니다.
  3. Data Archiving Solutions – 과거 기록을 인덱싱하여 즉시 검색할 수 있게 합니다.

성능 고려 사항

  • Memory Management: 대용량 문서 배치를 위해 JVM 힙 크기를 조정합니다.
  • Indexing Options: 불필요한 기능(예: term vectors)을 비활성화하여 인덱싱 속도를 높입니다.
  • Regular Updates: 성능 패치를 받기 위해 GroupDocs.Search를 최신 상태로 유지합니다.

자주 묻는 질문

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-02-19
테스트 환경: GroupDocs.Search 25.4 for Java
작성자: GroupDocs