Full text search java: GroupDocs와 로그 파일 추출기
Full‑text search java는 방대한 문서 컬렉션에서 정보를 빠르게 찾아야 하는 모든 시스템의 핵심입니다. 이 튜토리얼에서는 GroupDocs.Search를 구성하고, 사용자 정의 로그 파일 추출기를 만들고, 문서를 인덱스에 추가하며, 기가바이트 규모의 로그 데이터를 처리할 때 검색 성능을 최적화하는 방법을 배웁니다.
배울 내용
- GroupDocs.Search for Java를 설정하고 구성합니다.
- 필요에 맞게 일반 텍스트 로그를 파싱하는 log file extractor를 구현합니다.
- Add documents to index를 PDF, DOCX 및 기타 형식과 함께 수행합니다.
- 실제 시나리오에서 log file extractor가 측정 가능한 가치를 추가합니다.
- 멀티 기가바이트 로그 아카이브에 대한 optimise search performance를 위한 검증된 팁을 제공합니다.
빠른 답변
- What is a log file extractor? 일반 텍스트 로그 파일을 읽고 인덱싱하는 방법을 GroupDocs.Search에 알려주는 사용자 정의 구성 요소입니다.
- Why use GroupDocs.Search? 50개 이상의 형식 인덱싱을 지원하고 자동 재인덱싱을 제공하며, 2 GB 이하의 RAM으로 10 GB까지의 인덱스를 처리합니다.
- Do I need a license? 예 – 라이브러리를 사용하려면 체험판 또는 정식 라이선스가 필요합니다.
- Can I index other file types simultaneously? 물론입니다; PDF, DOCX 및 사용자 정의 로그 파일을 동일한 인덱스에 혼합할 수 있습니다.
- How to improve performance? 증분 인덱싱을 사용하고
IndexSettings를 조정하며autoReindex플래그를 활성화합니다.
사전 요구 사항
시작하기 전에 다음이 준비되어 있는지 확인하십시오:
필수 라이브러리
GroupDocs.Search Maven 의존성을 pom.xml에 추가하십시오. 프로젝트의 Java 버전에 맞는 최신 버전을 사용하세요.
<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 릴리스에서 다운로드하십시오.
환경 설정
- JDK 8 이상.
- Java 프로그래밍 및 기본 파일 처리 개념에 대한 이해.
라이선스 획득
먼저 무료 체험 라이선스를 다운로드하여 GroupDocs.Search 기능을 살펴보세요. 운영 환경에서는 정식 라이선스를 구매하거나 GroupDocs 웹사이트를 통해 임시 라이선스를 요청하십시오.
GroupDocs.Search for Java 설정
시작하려면 라이브러리를 초기화하고 라이선스 파일을 적용하십시오:
- Maven setup – 이전 단계의 의존성이 존재하는지 확인합니다.
- License initialisation – 다른 API 호출 전에 라이선스 파일을 로드합니다.
License license = new License();
license.setLicense("path/to/license");
환경이 준비되면 사용자 정의 log file extractor를 구축할 수 있습니다.
로그 파일 추출기란?
로그 파일 추출기는 GroupDocs.Search에 원시 로그 파일(보통 .log)을 읽고 내용을 검색 가능한 텍스트로 변환하는 방법을 알려주는 코드 조각입니다. 자체 추출기를 제공하면 파싱 규칙, 노이즈 필터링 및 검색 사용 사례에 중요한 정보만 추출하는 전체 제어권을 얻을 수 있습니다.
로그 파일 추출기 만들기
GroupDocs.Search는 모든 파일 유형에 대해 사용자 정의 텍스트 추출기를 연결할 수 있게 합니다. 로그 파일용 추출기를 만들기 위해 다음 단계를 따르세요.
단계 1: 사용자 정의 추출기 정의
TextExtractorBase는 사용자 정의 추출기를 만들기 위해 확장하는 추상 기본 클래스입니다. 추출기가 지원하는 파일 확장자를 선언하고 핵심 추출 로직을 포함합니다.
import com.groupdocs.search.extractors.TextExtractorBase;
public class LogExtractor extends TextExtractorBase {
@Override
public String[] getFileExtensions() {
return new String[]{"log"};
}
@Override
public String extractText(String documentContent) {
// Custom logic for extracting text from log files.
return documentContent; // Implement your custom extraction here.
}
}
Key points
getFileExtensions()는.log파일에 대한 추출기를 등록합니다.extractText는 타임스탬프를 제거하거나 디버그 라인을 필터링하거나 search large log files에 필요한 전처리를 적용할 수 있는 곳입니다.
단계 2: 추출기로 인덱스 설정 구성
추출기를 IndexSettings에 추가하고 autoReindex를 활성화하여 새 로그가 수동 개입 없이 자동으로 인덱싱되도록 합니다.
IndexSettings는 메모리 제한 및 사용자 정의 추출기와 같은 인덱스 동작을 구성합니다.autoReindex는 소스 파일이 변경될 때 인덱스를 자동으로 업데이트합니다.
import com.groupdocs.search.Index;
import com.groupdocs.search.IndexSettings;
public class CustomTextExtractorFeature {
public static void main(String[] args) {
String indexFolder = "YOUR_OUTPUT_DIRECTORY";
IndexSettings settings = new IndexSettings();
// Adding the custom text extractor to the settings.
settings.getCustomExtractors().addItem(new LogExtractor());
// Creating or loading an index with specified settings and enabling auto-reindexing.
Index index = new Index(indexFolder, settings, true);
}
}
단계 3: 인덱스에 문서 추가
이제 인덱스가 로그 파일을 인식하므로, 다른 지원 형식과 마찬가지로 add documents to index를 수행할 수 있습니다.
import com.groupdocs.search.Index;
public class AddDocumentsToIndexFeature {
public static void main(String[] args) {
String indexFolder = "YOUR_OUTPUT_DIRECTORY";
String documentsFolder = "YOUR_DOCUMENT_DIRECTORY";
// Loading or creating an index in the specified directory.
Index index = new Index(indexFolder);
// Adding documents from the folder to the index.
index.add(documentsFolder);
}
}
단계 4: 인덱스 검색
일반 텍스트 쿼리를 수행합니다. 사용자 정의 추출기는 모든 로그 항목이 검색 가능하도록 보장합니다.
import com.groupdocs.search.Index;
import com.groupdocs.search.results.SearchResult;
public class SearchDocumentsFeature {
public static void main(String[] args) {
String indexFolder = "YOUR_OUTPUT_DIRECTORY";
// Loading the existing index.
Index index = new Index(indexFolder);
// Define search queries
String query1 = "objection";
String query2 = "log";
// Performing searches and retrieving results.
SearchResult result1 = index.search(query1);
SearchResult result2 = index.search(query2);
}
}
검색 성능 최적화 팁
- Incremental indexing – 전체 인덱스를 재구성하는 대신 새롭거나 변경된 로그 파일만 추가합니다.
- Memory management –
autoReindex플래그는 중간 데이터를 디스크에 플러시하여 RAM 사용량을 낮게 유지합니다. - Index settings – 서버 용량에 따라
setMaxMemoryUsage를 조정합니다; 일반적인 설정은 10 GB 인덱스에 1 GB입니다. - Query optimisation – 구문 쿼리, 와일드카드 또는 필터를 사용하여 방대한 로그 아카이브 검색 시 결과를 좁힙니다.
실용적인 적용 사례
GroupDocs.Search는 다음과 같은 다양한 실제 시나리오에 적용될 수 있습니다:
- Log management – 수초 안에 기가바이트 규모의 로그 데이터에서 오류 메시지, 사용자 행동 또는 특정 타임스탬프를 찾습니다.
- Document retrieval systems – PDF, Word 문서, 스프레드시트 및 사용자 정의 로그 파일을 포함하는 단일 검색 가능한 저장소를 유지합니다.
- Content analysis – 키워드 빈도 보고서를 실행하거나 스트리밍 로그 데이터에서 이상 징후를 감지합니다.
성능 고려 사항
GroupDocs.Search를 대규모로 배포할 때 다음 모범 사례를 기억하십시오:
- 인덱스를 빠른 SSD에 저장하여 읽기/쓰기 지연 시간을 최소화합니다.
- JVM 힙 사용량을 모니터링하고 메모리가 병목 현상이 되면 대형 인덱스를 별도 프로세스로 오프로드하는 것을 고려합니다.
autoReindex를 활성화(위와 같이)하여 수동 재구축 없이 인덱스를 최신 상태로 유지합니다.
결론
이제 log file extractor를 구축하고, add documents to index 방법을 배우며, 대형 로그 아카이브에 대한 optimise search performance 방법을 발견했습니다. 이 조합을 통해 Java 애플리케이션은 모든 문서 유형에 대해 빠르고 정확한 전체 텍스트 검색을 제공할 수 있습니다.
보다 깊이 탐색하려면 공식 GroupDocs 문서를 확인하거나 다양한 추출기 구현을 실험하여 고유한 사용 사례에 맞추세요.
FAQ 섹션
- What file types can I index using GroupDocs.Search?
- PDF, Word 문서, 스프레드시트 및 기타 많은 형식과 텍스트 추출기를 통한 사용자 정의 로그 파일을 인덱싱할 수 있습니다.
- How do I handle large document collections efficiently?
- 증분 업데이트, 인덱스 파티셔닝 및
IndexSettings조정을 사용하여 리소스를 효율적으로 관리합니다.
- 증분 업데이트, 인덱스 파티셔닝 및
- Can GroupDocs.Search be integrated with other systems?
- 예, 기존 서비스, 마이크로서비스 또는 웹 애플리케이션에 삽입할 수 있는 깔끔한 Java API를 제공합니다.
- What is a temporary license, and how do I acquire one?
- 임시 라이선스는 제한 없이 평가를 위한 전체 기능을 제공합니다. GroupDocs 웹사이트를 통해 신청하십시오.
자주 묻는 질문
Q: 로그 파일 추출기는 기본 추출기와 어떻게 다릅니까?
A: 기본 추출기는 일반 형식(PDF, DOCX 등)을 처리합니다. 사용자 정의 로그 파일 추출기를 사용하면 일반 텍스트 로그 항목이 파싱되고 인덱싱되는 방식을 정확히 정의할 수 있습니다.
Q: 압축된 로그 아카이브(.zip 등)를 인덱싱할 수 있나요?
A: 예, 인덱스에 전달하기 전에 아카이브에서 파일을 추출하는 전처리 단계를 추가하면 됩니다.
Q: 지속적으로 생성되는 로그와 함께 인덱스를 최신 상태로 유지하는 가장 좋은 방법은 무엇인가요?
A: autoReindex를 활성화하고 새 파일이 나타날 때마다 index.add(newLogFile)을 호출하는 백그라운드 감시자를 예약하십시오.
Q: 인덱싱할 수 있는 단일 로그 파일 크기에 제한이 있나요?
A: 실제로 제한은 사용 가능한 메모리에 따라 달라집니다. 매우 큰 로그는 인덱싱 전에 작은 청크로 분할하는 것이 권장됩니다.
Q: GroupDocs.Search가 퍼지 검색이나 와일드카드 검색을 지원하나요?
A: 예, 검색 API에는 퍼지 매칭, 와일드카드 및 근접 쿼리가 포함되어 있어 결과 관련성을 향상시킵니다.
마지막 업데이트: 2026-08-05
테스트 환경: GroupDocs.Search 25.4 for Java
작성자: GroupDocs