package org.gbif.nub.lookup.fuzzy; import org.gbif.api.model.checklistbank.NameUsage; import java.io.IOException; import org.apache.ibatis.session.ResultContext; import org.apache.ibatis.session.ResultHandler; import org.apache.lucene.index.IndexWriter; import org.gbif.checklistbank.model.ParsedNameUsage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * */ public class IndexBuildHandler implements ResultHandler<ParsedNameUsage> { private static final Logger LOG = LoggerFactory.getLogger(IndexBuildHandler.class); private final IndexWriter writer; private int counter; public IndexBuildHandler(IndexWriter writer) { this.writer = writer; } @Override public void handleResult(ResultContext<? extends ParsedNameUsage> u) { try { writer.addDocument(NubIndex.toDoc(u.getResultObject())); counter++; if (counter % 100000 == 0) { LOG.info("{} usages added to nub index", counter); } } catch (IOException e) { throw new IllegalStateException(e); } } }