Package org.apache.lucene.search.highlight

Examples of org.apache.lucene.search.highlight.Highlighter


            termsArray[i] = term;
        }
        QueryTermScorer scorer = new QueryTermScorer(termsArray);

        // create highlighter
        Highlighter highlighter = new Highlighter(formatter, scorer);
       
        return highlighter;
    }   
View Full Code Here


    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;
        // 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 ) )
                {
View Full Code Here

   * @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;
  }
View Full Code Here

   * @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;
  }
View Full Code Here

            catch (IllegalArgumentException e) {
              // fall back to anaylzer
              tstream = new TokenOrderingFilter(schema.getAnalyzer().tokenStream(fieldName, new StringReader(docTexts[j])), 10);
            }
            
            Highlighter highlighter;
            if (Boolean.valueOf(req.getParams().get(HighlightParams.USE_PHRASE_HIGHLIGHTER))) {
              // wrap CachingTokenFilter around TokenStream for reuse
              tstream = new CachingTokenFilter(tstream);
             
              // get highlighter
              highlighter = getPhraseHighlighter(query, fieldName, req, (CachingTokenFilter) tstream);
              
              // after highlighter initialization, reset tstream since construction of highlighter already used it
              tstream.reset();
            }
            else {
              // use "the old way"
              highlighter = getHighlighter(query, fieldName, req);
            }
           
            int maxCharsToAnalyze = params.getFieldInt(fieldName,
                HighlightParams.MAX_CHARS,
                Highlighter.DEFAULT_MAX_CHARS_TO_ANALYZE);
            if (maxCharsToAnalyze < 0) {
              highlighter.setMaxDocCharsToAnalyze(docTexts[j].length());
            } else {
              highlighter.setMaxDocCharsToAnalyze(maxCharsToAnalyze);
            }
           
            TextFragment[] bestTextFragments = highlighter.getBestTextFragments(tstream, docTexts[j], mergeContiguousFragments, numFragments);
            for (int k = 0; k < bestTextFragments.length; k++) {
              if ((bestTextFragments[k] != null) && (bestTextFragments[k].getScore() > 0)) {
                frags.add(bestTextFragments[k]);
              }
            }
View Full Code Here

    ScoreDoc[] hits = collector.topDocs().scoreDocs;
    //setsback to action
    objectsToReturn.put("hits", hits);
   
    //highlighter
        Highlighter highlighter = new Highlighter( new SimpleHTMLFormatter(), new QueryScorer(andQuery));
    if(hits != null) {
      logger.debug("hits size: " + hits.length);
            for(int i=0; i<hits.length; i++) {
            ScoreDoc hit = hits[i];
            Document doc = searcher.doc(hit.doc);
              String biobjId = doc.get(IndexingConstants.BIOBJ_ID);   
             
              String[] subobjNames = doc.getValues(IndexingConstants.SUBOBJ_NAME);
            if(subobjNames != null && subobjNames.length != 0){
              String views = "";
                for(int k=0; k<subobjNames.length; k++){
                  views+= subobjNames[k]+" ";
                }
                objectsToReturn.put(biobjId+"-views", views);
              }
            String summary ="";
            if (highlighter != null){
                String[] summaries;
          try {
            Integer idobj= (Integer.valueOf(biobjId));

            String contentToSearchOn = fillSummaryText(idobj);
           
            summaries = highlighter.getBestFragments(new StandardAnalyzer(Version.LUCENE_CURRENT), IndexingConstants.CONTENTS ,contentToSearchOn, 3);
                  StringBuffer summaryBuffer = new StringBuffer();
                  if (summaries.length > 0)
                  {
                      summaryBuffer.append(summaries[0]);
                  }
View Full Code Here

    objectsToReturn.put("hits", hits);

    //highlighter
    //orQuery = orQuery.rewrite(searcher.getIndexReader());
    //andQuery = andQuery.rewrite(searcher.getIndexReader());
        Highlighter highlighter = new Highlighter( new SimpleHTMLFormatter(), new QueryScorer(andQuery));

    if(hits != null) {
            for(int i=0; i<hits.length; i++) {
            ScoreDoc hit = hits[i];
            Document doc = searcher.doc(hit.doc);
              String biobjId = doc.get(IndexingConstants.BIOBJ_ID);             
            String summary =" ";
            if (highlighter != null){
                String[] summaries;
          try {
            Integer idobj= (Integer.valueOf(biobjId));

            String contentToSearchOn = fillSummaryText(idobj);
            summaries = highlighter.getBestFragments(new StandardAnalyzer(Version.LUCENE_CURRENT), IndexingConstants.CONTENTS ,contentToSearchOn, 3);
           
                  StringBuffer summaryBuffer = new StringBuffer();
                  if (summaries.length > 0)
                  {
                      summaryBuffer.append(summaries[0]);
View Full Code Here

        true, MockTokenFilter.ENGLISH_STOPSET, true).tokenStream(fieldName,
        new StringReader(text));
    // Assuming "<B>", "</B>" used to highlight
    SimpleHTMLFormatter formatter = new SimpleHTMLFormatter();
    MyQueryScorer scorer = new MyQueryScorer(query, fieldName, FIELD_NAME);
    Highlighter highlighter = new Highlighter(formatter, scorer);
    highlighter.setTextFragmenter(new SimpleFragmenter(Integer.MAX_VALUE));

    String rv = highlighter.getBestFragments(tokenStream, text, 1,
        "(FIELD TEXT TRUNCATED)");
    return rv.length() == 0 ? text : rv;
  }
View Full Code Here

    // use an artificial delimiter for the token
    String termTag = "!!--[";
    String termTagEnd = "]--!!";
    SimpleHTMLFormatter formatter = new SimpleHTMLFormatter(termTag, termTagEnd);
    Highlighter highlighter = new Highlighter(formatter, scorer);
    highlighter.setTextFragmenter(fragmenter);

    String [] fragments = highlighter.getBestFragments(analyzer, "content", content, 3);
    if (ArrayUtils.isEmpty(fragments)) {
      if (SearchObjectType.blob  == result.type) {
        return "";
      }
      // clip commit message
View Full Code Here

   
    TermQuery query = new TermQuery(new Term("f", "fox"));

    QueryScorer scorer = new QueryScorer(query);

    Highlighter highlighter = new Highlighter(scorer);

    Fragmenter fragmenter = new SimpleFragmenter(5);
    highlighter.setTextFragmenter(fragmenter);

    Analyzer a = new KoreanAnalyzer(false);
    TokenStream tokenStream = a.tokenStream("f", new StringReader(text));

    String result =
            highlighter.getBestFragments(tokenStream, text,2, "...");

    a.close();
   
    System.out.println(result);
   
View Full Code Here

TOP

Related Classes of org.apache.lucene.search.highlight.Highlighter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.