if (bestTextFragment != null && bestTextFragment.getScore() > 0) { fragsList.add(bestTextFragment); fragments = new String[fragsList.size()]; for (int i = 0; i < fragsList.size(); i++) { fragments[i] = fragsList.get(i).toString(); fragments = new String[numberOfFragments]; for (int i = 0; i < fragments.length; i++) { fragments[i] = fragsList.get(i).toString();
if (savedInstanceState == null) { getSupportFragmentManager() .beginTransaction() .add(R.id.main_container_1, new OpenGLES20ActivityFrag()) .commit(); getSupportFragmentManager() .beginTransaction() .add(R.id.main_container_2, new TextFragment()) .commit(); }
private String frags2string(final TextFragment[] frags, final HighlightOpts opts) { final StringBuilder sb = new StringBuilder(); String sep = ""; for (final TextFragment f : frags) { final String fragStr = f.toString(); log.trace("found fragment {}", f); sb.append(sep); sb.append(opts.joinHi ? fragStr.replaceAll(opts.patternExpr, "$1") : fragStr); sep = opts.fragSep; } return sb.toString(); }
AdditionalTermAttribute addAtt = tokenStream.addAttribute(AdditionalTermAttribute.class); tokenStream.reset(); TextFragment currentFrag = new TextFragment(newText, newText.length(), docFrags.size()); currentFrag.setScore(fragmentScorer.getFragmentScore()); markUp(offsetAtt, termAtt, tokenGroup, text, tokenText, startOffset, endOffset, lastEndOffset, newText, ArrayList<TextFragment> fragTexts = new ArrayList<TextFragment>(); for (int i = 0; i < frag.length; i++) { if ((frag[i] != null) && (frag[i].getScore() > 0)) { fragTexts.add(frag[i]);
int worstScoringFragNum; if (frag[i].follows(frag[x])) { frag1 = frag[x]; frag1Num = x; frag2 = frag[i]; frag2Num = i; } else if (frag[x].follows(frag[i])) { frag1 = frag[i]; frag1Num = i; if (frag1.getScore() > frag2.getScore()) { bestScoringFragNum = frag1Num; worstScoringFragNum = frag2Num; worstScoringFragNum = frag1Num; frag1.merge(frag2); frag[worstScoringFragNum] = null; mergingStillBeingDone = true;
currentFrag.setScore(fragmentScorer.getFragmentScore()); currentFrag = new TextFragment(newText, newText.length(), docFrags.size()); fragmentScorer.startFragment(currentFrag); docFrags.add(currentFrag);
private String frags2string(final TextFragment[] frags, final HighlightOpts opts) { final StringBuilder sb = new StringBuilder(); String sep = ""; for (final TextFragment f : frags) { final String fragStr = f.toString(); log.trace("found fragment {}", f); sb.append(sep); sb.append(opts.joinHi ? fragStr.replaceAll(opts.patternExpr, "$1") : fragStr); sep = opts.fragSep; } return sb.toString(); }
TextFragment currentFrag = new TextFragment(newText,newText.length(), docFrags.size()); currentFrag.setScore(fragmentScorer.getFragmentScore()); currentFrag =new TextFragment(newText, newText.length(), docFrags.size()); fragmentScorer.startFragment(currentFrag); docFrags.add(currentFrag); currentFrag.setScore(fragmentScorer.getFragmentScore()); for (int i = 0; i < frag.length; i++) if ((frag[i] != null) && (frag[i].getScore() > 0))
/** * Highlights chosen terms in a text, extracting the most relevant sections. The document text is analysed in chunks to record * hit statistics across the document. After accumulating stats, the fragments with the highest scores are returned as an * array of strings in order of score (contiguous fragments are merged into one in their original order to improve * readability) * * @param text * text to highlight terms in * @param maxNumFragments * the maximum number of fragments. * * @return highlighted text fragments (between 0 and maxNumFragments number of fragments) * @throws InvalidTokenOffsetsException * thrown if any token's endOffset exceeds the provided text's length */ public final String[] getBestFragments(TokenStream tokenStream, String text, int maxNumFragments) throws IOException, InvalidTokenOffsetsException { maxNumFragments = Math.max(1, maxNumFragments); // sanity check TextFragment[] frag = getBestTextFragments(tokenStream, text, true, maxNumFragments); // Get text ArrayList<String> fragTexts = new ArrayList<String>(); for (int i = 0; i < frag.length; i++) { if ((frag[i] != null) && (frag[i].getScore() > 0)) { fragTexts.add(frag[i].toString()); } } return fragTexts.toArray(new String[0]); }
private String getExcerpt(Analyzer analyzer, IndexSearcher searcher, ScoreDoc doc) throws IOException { StringBuilder excerpt = new StringBuilder(); for (IndexableField field : searcher.getIndexReader().document(doc.doc).getFields()) { String name = field.name(); // only full text or analyzed fields if (name.startsWith(FieldNames.FULLTEXT) || name.startsWith(FieldNames.ANALYZED_FIELD_PREFIX)) { String text = field.stringValue(); TokenStream tokenStream = analyzer.tokenStream(name, text); try { TextFragment[] textFragments = highlighter.getBestTextFragments(tokenStream, text, true, 2); if (textFragments != null && textFragments.length > 0) { for (TextFragment fragment : textFragments) { if (excerpt.length() > 0) { excerpt.append("..."); } excerpt.append(fragment.toString()); } break; } } catch (InvalidTokenOffsetsException e) { LOG.error("higlighting failed", e); } } } return excerpt.toString(); }
@Override public void oBClicked(boolean x){ FragmentManager fm = getSupportFragmentManager(); FragmentTransaction ft = fm.beginTransaction(); Fragment fragment = new TextFragment(); Bundle arguments = new Bundle(); arguments.putBoolean("data",x); fragment.setArguments(arguments); ft.replace(R.id.fragmentContainer, fragment); ft.addToBackStack(null); ft.commit(); }
private String getExcerpt(Analyzer analyzer, IndexSearcher searcher, ScoreDoc doc) throws IOException { StringBuilder excerpt = new StringBuilder(); for (IndexableField field : searcher.getIndexReader().document(doc.doc).getFields()) { String name = field.name(); // only full text or analyzed fields if (name.startsWith(FieldNames.FULLTEXT) || name.startsWith(FieldNames.ANALYZED_FIELD_PREFIX)) { String text = field.stringValue(); TokenStream tokenStream = analyzer.tokenStream(name, text); try { TextFragment[] textFragments = highlighter.getBestTextFragments(tokenStream, text, true, 2); if (textFragments != null && textFragments.length > 0) { for (TextFragment fragment : textFragments) { if (excerpt.length() > 0) { excerpt.append("..."); } excerpt.append(fragment.toString()); } break; } } catch (InvalidTokenOffsetsException e) { LOG.error("higlighting failed", e); } } } return excerpt.toString(); }
public void onClick(View v){ FragmentTransaction ft = getChildFragmentManager().beginTransaction(); ft.replace(R.id.fragment_container, new TextFragment(), TextFragment.class.getName()); ft.addToBackStack(TextFragment.class.getName()); ft.commit();
@Override public void onRecordAddedToResultSet(OLuceneQueryContext queryContext, OContextualRecordId recordId, Document ret, final ScoreDoc score) { recordId.setContext(new HashMap<String, Object>() {{ HashMap<String, TextFragment[]> frag = queryContext.getFragments(); frag.entrySet().stream().forEach(f -> { TextFragment[] fragments = f.getValue(); StringBuilder hlField = new StringBuilder(); for (int j = 0; j < fragments.length; j++) { if ((fragments[j] != null) && (fragments[j].getScore() > 0)) { hlField.append(fragments[j].toString()); } } put("$" + f.getKey() + "_hl", hlField.toString()); }); put("$score", score.score); }}); }