package doser.summarization.algorithm;
import java.io.File;
import java.io.IOException;
import org.apache.log4j.Logger;
import org.apache.lucene.document.Document;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.FuzzyQuery;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
public class SummarizationSOLRIndex {
public static void main(final String[] args) {
final SummarizationSOLRIndex index = new SummarizationSOLRIndex();
index.summarize("http://www.uniprot.org/uniprot/O35313");
}
public SummaryInfos summarize(final String uri) {
// return summarize(uri, "/home/quh/Arbeitsfläche/Wissensbasen/Index/");
return this
.summarize(uri, "/home/quh/Arbeitsfläche/Wissensbasen/MMap/");
// return summarize(uri, Properties.getInstance()
// .getEntityCentricKBLocation());
}
public SummaryInfos summarize(final String uri, final String index) {
SummaryInfos res = new SummaryInfos();
final File indexDir = new File(index);
try {
final Directory dir = FSDirectory.open(indexDir);
final IndexSearcher iSearcher = new IndexSearcher(
DirectoryReader.open(dir));
final IndexReader iReader = DirectoryReader.open(dir);
final FuzzyQuery termq = new FuzzyQuery(new Term("Mainlink", uri));
final TopDocs top = iSearcher.search(termq, 1);
final ScoreDoc[] score = top.scoreDocs;
final SummaryInfos infos = new SummaryInfos();
if (score.length > 0) {
final Document doc = iReader.document(score[0].doc);
final String des = doc.get("Description");
if (des != null) {
infos.setSummary(des);
}
final String label = doc.get("Label");
if (label != null) {
infos.setLabel(label);
}
}
infos.setUri(uri);
iReader.close();
res = infos;
} catch (final IOException e) {
Logger.getRootLogger().error(e.getStackTrace());
}
return res;
}
}