Stack Empty
공식 홈페이지에서 Spring-Batch를 다음과 같이 설명하고 있다. '스프링 배치는 엔터프라이즈 어플리케이션 운영에 필요한 반복적인 작업을 위해 개발된 경량화 되고 종합적인 일괄 처리 프레임워크입니다.' 해당 설명대로 이를 위해 아래와 같은 기능등을 제공하고 있다. 주기적인 Commit 배치 프로세스동시 배치 처리 : Job 병행 처리엔터프라이즈 메세지 지향 처리대규모의 병행 배치 처리작업 실패 후의 수동 혹은 스케쥴을 적용한 재시작독립적 스탭(스프링 배치의 가장 작은 작업 단위)을 순차적으로 처리부분적 처리 -> 이미 처리한 부분 skip전체적으로 적용되는 배치 트랜잭션 또한 Spring-Batch를 도입해야 하는 이유에 대해서도 아래와 같이 설명을 하고 있다. 배치 개발시에 Spring의 프로그래..
검색 서비스를 수행하다보면 기존의 색인 내용을 변경해야 할 때가 있다. 상품의 가격이 변경되었다던지 하는 경우가 좋은 예라고 하겠다. 이럴 때는 루씬의 IndexWriter가 제공해주는 updateDocument() 메서드를 사용하면 쉽게 해당 작업을 수행할 수 있다. package com.tistory.outofmemoryerror.lucene.indexing; import static org.junit.Assert.assertEquals; import java.io.IOException; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apac..
대부분의 검색 프로그램은 색인 저장소에서 사용자가 입력한 키워드에 맞는 정보를 검색하여 반환하는 것이 대부분이지만 때로는 색인 저장소의 데이터를 삭제해야 될 필요가 있다. 예를 들어 단종된 상품 정보를 더 이상 표시하지 않거나, 금지어가 포함된 모든 문서를 삭제하려는 경우다. 색인 저장소에서 Document를 삭제하려면 Term(루씬 색인에서 단어를 나타내는 가장 기본적 요소) 객체를 이용하여 색인한 Field ID와 내용을 입력한 후 IndexWriter의 deleteDocuments()메서드에 매개변수로 넘겨 호출하면 된다. 하지만 해당 메서드를 호출한다고 색인에서 곧바로 지정한 문서가 삭제 되는 것이 아니라 마치 DBMS의 그것 처럼 삭제 되어야 하는 대상이라는 표시만 해둔다. 이후 IndexWri..