entry.setTextFragmenter(fragmenter);
@Override public Multimap<String, String> getFragments(Document doc) { final Multimap<String, String> fragments = ArrayListMultimap.create(); for (Map.Entry<String, Integer> entry : fields.entrySet()) { final String field = entry.getKey(); final Integer maxNumFragments = entry.getValue(); final String text = doc.get(field); if (text != null) { try { highlighter.setTextFragmenter(maxNumFragments > 0 ? new SimpleFragmenter() : new NullFragmenter()); String[] fr = highlighter.getBestFragments(analyzer, field, text, maxNumFragments); if (fr != null && fr.length > 0) { fragments.putAll(field, Arrays.asList(fr)); } } catch (IOException e) { } catch (InvalidTokenOffsetsException e) { } } } // TODO: fix exceptions. return fragments; }
highlighter.setTextFragmenter( new SimpleSpanFragmenter(scorer) );
Fragmenter fragmenter = new SimpleSpanFragmenter(scorer);//根据得分算出一个片段 Highlighter highlighter = new Highlighter(simpleHTMLFormatter,scorer); highlighter.setTextFragmenter(fragmenter);//设置显示高亮的片段
/** * Return a phrase Highlighter appropriate for this field. * @param query The current Query * @param fieldName The name of the field * @param request The current SolrQueryRequest * @param tokenStream document text CachingTokenStream * @throws IOException */ protected Highlighter getPhraseHighlighter(Query query, String fieldName, SolrQueryRequest request, CachingTokenFilter tokenStream) throws IOException { SolrParams params = request.getParams(); Highlighter highlighter = null; highlighter = new Highlighter(getFormatter(fieldName, params), getSpanQueryScorer(query, fieldName, tokenStream, request)); highlighter.setTextFragmenter(getFragmenter(fieldName, params)); return highlighter; }
highlighter.setTextFragmenter(new NullFragmenter()); highlightedDescMap.put(webSearchable, highlighter.getBestFragment( tokenStream, highlightString));
highlighter.setTextFragmenter(new NullFragmenter()); highlightedDescMap.put(webSearchable, highlighter.getBestFragment( tokenStream, highlightString));
/** * Return a Highlighter appropriate for this field. * @param query The current Query * @param fieldName The name of the field * @param request The current SolrQueryRequest */ protected Highlighter getHighlighter(Query query, String fieldName, SolrQueryRequest request) { SolrParams params = request.getParams(); Highlighter highlighter = new Highlighter( getFormatter(fieldName, params), getQueryScorer(query, fieldName, request)); highlighter.setTextFragmenter(getFragmenter(fieldName, params)); return highlighter; }
public List<InteractionOntologyTerm> search(Query query, Sort sort) throws IOException { List<InteractionOntologyTerm> terms = new ArrayList<InteractionOntologyTerm>(); IndexReader indexReader = IndexReader.open(indexDirectory); final IndexSearcher searcher = new IndexSearcher(indexReader); Filter filter = new Filter() { @Override public DocIdSet getDocIdSet(IndexReader indexReader) throws IOException { final DocIdBitSet bitSet = new DocIdBitSet(new BitSet()); bitSet.getBitSet().flip(0, searcher.getIndexReader().numDocs()); return bitSet; } }; final TopDocs hits = searcher.search(query, filter, 30, sort); Formatter formatter = new SimpleHTMLFormatter(); Highlighter highlighter = new Highlighter(formatter, new QueryScorer(query) ); highlighter.setTextFragmenter(new SimpleFragmenter(20)); for (ScoreDoc scoreDoc : hits.scoreDocs) { Document document = searcher.getIndexReader().document(scoreDoc.doc); InteractionOntologyTerm term = createOntologyTerm(document, highlighter); terms.add(term); } searcher.close(); return terms; }
protected final List<String> getBestFragments( Query query, Formatter formatter, TokenStream tokenStream, String text, int maxNumFragments ) throws IOException { Highlighter highlighter = new Highlighter( formatter, new CleaningEncoder(), new QueryScorer( query ) ); highlighter.setTextFragmenter( new OneLineFragmenter() ); maxNumFragments = Math.max( 1, maxNumFragments ); // sanity check TextFragment[] frag; // Get text ArrayList<String> fragTexts = new ArrayList<String>( maxNumFragments ); try { frag = highlighter.getBestTextFragments( tokenStream, text, false, maxNumFragments ); for ( int i = 0; i < frag.length; i++ ) { if ( ( frag[i] != null ) && ( frag[i].getScore() > 0 ) ) { fragTexts.add( frag[i].toString() ); } } } catch ( InvalidTokenOffsetsException e ) { // empty? } return fragTexts; }
protected final List<String> getBestFragments( Query query, Formatter formatter, TokenStream tokenStream, String text, int maxNumFragments ) throws IOException { Highlighter highlighter = new Highlighter( formatter, new CleaningEncoder(), new QueryScorer( query ) ); highlighter.setTextFragmenter( new OneLineFragmenter() ); tokenStream.reset(); maxNumFragments = Math.max( 1, maxNumFragments ); // sanity check TextFragment[] frag = highlighter.getBestTextFragments( tokenStream, text, false, maxNumFragments ); // Get text ArrayList<String> fragTexts = new ArrayList<String>( maxNumFragments ); for ( int i = 0; i < frag.length; i++ ) { if ( ( frag[i] != null ) && ( frag[i].getScore() > 0 ) ) { fragTexts.add( frag[i].toString() ); } } return fragTexts; }
highlighter.setTextFragmenter(new SimpleFragmenter(opts.fragSize));
protected final List<String> getBestFragments( Query query, Formatter formatter, TokenStream tokenStream, String text, int maxNumFragments ) throws IOException { Highlighter highlighter = new Highlighter( formatter, new CleaningEncoder(), new QueryScorer( query ) ); highlighter.setTextFragmenter( new OneLineFragmenter() ); maxNumFragments = Math.max( 1, maxNumFragments ); // sanity check TextFragment[] frag; // Get text ArrayList<String> fragTexts = new ArrayList<>( maxNumFragments ); try { frag = highlighter.getBestTextFragments( tokenStream, text, false, maxNumFragments ); for ( int i = 0; i < frag.length; i++ ) { if ( ( frag[i] != null ) && ( frag[i].getScore() > 0 ) ) { fragTexts.add( frag[i].toString() ); } } } catch ( InvalidTokenOffsetsException e ) { // empty? } return fragTexts; }
protected final List<String> getBestFragments( Query query, Formatter formatter, TokenStream tokenStream, String text, int maxNumFragments ) throws IOException { Highlighter highlighter = new Highlighter( formatter, new CleaningEncoder(), new QueryScorer( query ) ); highlighter.setTextFragmenter( new OneLineFragmenter() ); maxNumFragments = Math.max( 1, maxNumFragments ); // sanity check TextFragment[] frag; // Get text ArrayList<String> fragTexts = new ArrayList<>( maxNumFragments ); try { frag = highlighter.getBestTextFragments( tokenStream, text, false, maxNumFragments ); for ( int i = 0; i < frag.length; i++ ) { if ( ( frag[i] != null ) && ( frag[i].getScore() > 0 ) ) { fragTexts.add( frag[i].toString() ); } } } catch ( InvalidTokenOffsetsException e ) { // empty? } return fragTexts; }
highlighter.setTextFragmenter(new SimpleFragmenter(opts.fragSize));
public HighlightingContext createContext( IndexSearcher indexSearcher, Query query) throws IOException { Scorer scorer = new QueryScorer(indexSearcher.rewrite(query)); if (formatter == null) { formatter = new SimpleHTMLFormatter("<" + highlightPreTag + ">", "</" + highlightPostTag + ">"); } if (fragmenter == null) { fragmenter = new SimpleFragmenter(fragmentSize); } Highlighter highlighter = new Highlighter(formatter, encoder, scorer); highlighter.setTextFragmenter(fragmenter); return new HighlightingContext(highlighter); }
protected Highlighter createHighlighter(String propertyName) throws SearchEngineException { Highlighter highlighter = new Highlighter(highlighterSettings.getFormatter(), highlighterSettings.getEncoder(), createScorer(propertyName)); Fragmenter f = highlighterSettings.getFragmenter(); highlighter.setTextFragmenter(f); if (maxBytesToAnalyze == -1) { highlighter.setMaxDocBytesToAnalyze(highlighterSettings.getMaxBytesToAnalyze()); } else { highlighter.setMaxDocBytesToAnalyze(maxBytesToAnalyze); } return highlighter; }
entry.setTextFragmenter(fragmenter);
entry.setTextFragmenter(fragmenter);
entry.setTextFragmenter(fragmenter);