GroupDocs.Search for Java를 사용하여 문서 인덱스 만들기: 완전 가이드

오늘날 디지털 시대에 문서 인덱스 생성을 빠르게 하고 효율적으로 검색할 수 있는 능력은 모든 조직에 큰 변화를 가져옵니다. 문서 관리 시스템을 구축하든 맞춤형 검색 엔진을 만들든, GroupDocs.Search for Java는 텍스트 추출, 데이터 직렬화 및 전체 텍스트 검색 Java 작업을 손쉽게 수행할 수 있는 도구를 제공합니다. 이 튜토리얼은 PDF 텍스트 추출부터 인덱스에 데이터 추가 및 인덱스된 문서 검색까지 모든 단계를 안내합니다.

Quick Answers

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

문서 인덱스란?

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

왜 GroupDocs.Search for Java를 사용해야 할까요?

  • 강력한 추출 – PDF, Word, Excel 등 다양한 형식을 지원합니다.
  • 간편한 직렬화 – 추출한 데이터를 바이트 배열로 저장해 나중에 재사용할 수 있습니다.
  • 확장 가능한 인덱싱 – 수백만 개의 문서를 효율적으로 인덱싱합니다.
  • 강력한 쿼리 언어 – 복잡한 전체 텍스트 검색 Java 쿼리를 지원합니다.

사전 요구 사항

  • 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(및 기타 문서)에서 텍스트 추출하기

원시 텍스트 또는 포맷된 텍스트를 추출하는 것이 문서 인덱스를 만들기 위한 첫 번째 단계입니다.

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);

데이터 추가 및 검색 수행하기

데이터를 인덱스에 추가하고 쿼리를 실행하면 문서 인덱스 생성 작업 흐름이 완성됩니다.

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. 문서 관리 시스템 – 계약서, 청구서, 정책 등을 빠르게 찾을 수 있습니다.
  2. 콘텐츠 기반 검색 엔진 – 내부 지식 베이스에 전체 텍스트 검색 Java 기능을 제공합니다.
  3. 데이터 아카이빙 솔루션 – 과거 기록을 인덱싱해 즉시 검색할 수 있게 합니다.

성능 고려 사항

  • 메모리 관리: 대용량 문서 배치를 처리하려면 JVM 힙 크기를 조정하세요.
  • 인덱싱 옵션: 불필요한 기능(예: term vectors)을 비활성화해 인덱싱 속도를 높일 수 있습니다.
  • 정기 업데이트: 성능 패치를 적용하려면 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을 실행하세요. 마이그레이션 가이드를 확인해 브레이킹 체인지가 있는지 검토하세요.

리소스


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