package proj.zoie.perf.indexing;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.Field.Index;
import org.apache.lucene.document.Field.Store;
import org.json.JSONObject;
import proj.zoie.api.indexing.AbstractZoieIndexable;
import proj.zoie.api.indexing.AbstractZoieIndexableInterpreter;
import proj.zoie.api.indexing.ZoieIndexable;
import proj.zoie.api.indexing.ZoieIndexable.IndexingReq;
public class TweetInterpreter extends AbstractZoieIndexableInterpreter<String> {
private static long id = 0;
@Override
public ZoieIndexable convertAndInterpret(String tweet) {
try {
final String text = tweet;
final long uid = id++;
return new AbstractZoieIndexable() {
@Override
public IndexingReq[] buildIndexingReqs() {
Document doc = new Document();
doc.add(new Field("contents", text, Store.NO, Index.ANALYZED));
return new IndexingReq[] { new IndexingReq(doc) };
}
@Override
public long getUID() {
return uid;
}
@Override
public boolean isDeleted() {
return false;
}
@Override
public boolean isSkip() {
return false;
}
};
} catch (Exception e) {
return new AbstractZoieIndexable() {
@Override
public IndexingReq[] buildIndexingReqs() {
return null;
}
@Override
public long getUID() {
return 0;
}
@Override
public boolean isDeleted() {
return false;
}
@Override
public boolean isSkip() {
return true;
}
};
}
}
}