use of com.genexus.GxSilentTrnSdt in project JavaClasses by genexuslabs.
the class DocumentHandler method htmlPreview.
public static String htmlPreview(Object obj, String query, String textType, String preTag, String postTag, int fragmentSize, int maxNumFragments) {
String text;
try {
if (obj instanceof GxSilentTrnSdt) {
text = ((GxSilentTrnSdt) obj).getTransaction().toString();
} else if (obj instanceof GXFile) {
GXFile file = (GXFile) obj;
text = DocumentHandler.getText(file.getAbsoluteName(), file.getExt());
} else if (textType.toLowerCase().startsWith("htm")) {
text = new JTidyHTMLHandler().getTextFromString(obj.toString());
} else {
text = obj.toString();
}
if (!query.equals("") && !text.equals("")) {
QueryParser qp = new QueryParser(IndexRecord.CONTENTFIELD, Indexer.CreateAnalyzer());
qp.setDefaultOperator(QueryParser.Operator.AND);
Query unReWrittenQuery = qp.parse(query);
Query q = unReWrittenQuery;
try {
if (reader == null) {
reader = Indexer.getReader();
}
if (queries.get(query) != null) {
q = (Query) queries.get(query);
} else {
// required to expand search terms (for the usage of
q = unReWrittenQuery.rewrite(reader);
// highlighting with wildcards)
if (queries.size() == Integer.MAX_VALUE) {
queries.clear();
}
queries.put(query, q);
}
} catch (Exception ex) {
}
QueryScorer scorer = new QueryScorer(q);
SimpleHTMLFormatter formatter = new SimpleHTMLFormatter(preTag, postTag);
Highlighter highlighter = new Highlighter(formatter, scorer);
Fragmenter fragmenter = new SimpleFragmenter(fragmentSize);
highlighter.setTextFragmenter(fragmenter);
TokenStream tokenStream = Indexer.CreateAnalyzer().tokenStream(IndexRecord.CONTENTFIELD, new StringReader(text));
String result = highlighter.getBestFragments(tokenStream, text, maxNumFragments, "...");
return result;
} else {
return text;
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
ex.printStackTrace();
return "";
}
}
use of com.genexus.GxSilentTrnSdt in project JavaClasses by genexuslabs.
the class Indexer method getIndexRecord.
private IndexRecord getIndexRecord(Object obj, GXContentInfo contentInfo) {
if (contentInfo == null)
contentInfo = new GXContentInfo();
IndexRecord ir = new IndexRecord();
if (obj instanceof GXFile) {
GXFile file = (GXFile) obj;
ir.setUri(file.getAbsoluteName());
ir.setContent(DocumentHandler.getText(file.getAbsoluteName(), file.getExt()).toLowerCase());
ir.setEntity(contentInfo.getType() == null ? file.getClass().getName() : contentInfo.getType());
ir.setTitle(contentInfo.getTitle() == null ? file.getName() : contentInfo.getTitle());
ir.setViewer(contentInfo.getViewer() == null ? file.getName() : contentInfo.getViewer());
ir.setKeys(contentInfo.getKeys() == null || contentInfo.getKeys().size() == 0 ? new Vector<String>() : contentInfo.getKeys());
} else if (obj instanceof GxSilentTrnSdt) {
IGxSilentTrn bc = ((GxSilentTrnSdt) obj).getTransaction();
GXContentInfo info = bc.getContentInfo();
ir.setUri(info.getId());
ir.setContent(IndexRecord.processContent(bc.toString()));
ir.setEntity(contentInfo.getType() == null ? info.getType() : contentInfo.getType());
ir.setTitle(contentInfo.getTitle() == null ? info.getTitle() : contentInfo.getTitle());
ir.setViewer(contentInfo.getViewer() == null ? info.getViewer() : contentInfo.getViewer());
ir.setKeys(contentInfo.getKeys() == null || contentInfo.getKeys().size() == 0 ? info.getKeys() : contentInfo.getKeys());
} else if (obj instanceof String) {
ir.setUri(contentInfo.getId() == null ? "" : contentInfo.getId());
ir.setContent(IndexRecord.processContent((String) obj));
ir.setEntity(contentInfo.getType() == null ? "" : contentInfo.getType());
ir.setTitle(contentInfo.getTitle() == null ? "" : contentInfo.getTitle());
ir.setViewer(contentInfo.getViewer() == null ? "" : contentInfo.getViewer());
ir.setKeys(contentInfo.getKeys() == null || contentInfo.getKeys().size() == 0 ? new Vector<String>() : contentInfo.getKeys());
} else {
ir = null;
}
return ir;
}
Aggregations