Examples of Highlighter


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

        if (shouldNumberBeHighlighted(name, numericValue, fieldFixedQuery)) {
          String numberHighlight = preTag + text + postTag;
          result.add(new StringField(name, numberHighlight, Store.YES));
        }
      } else {
        Highlighter highlighter = new Highlighter(htmlFormatter, new QueryScorer(fieldFixedQuery, name));
        TokenStream tokenStream = TokenSources.getAnyTokenStream(reader, docId, name, analyzer);
        TextFragment[] frag = highlighter.getBestTextFragments(tokenStream, text, false, 10);
        for (int j = 0; j < frag.length; j++) {
          if ((frag[j] != null) && (frag[j].getScore() > 0)) {
            result.add(new StringField(name, frag[j].toString(), Store.YES));
          }
        }
View Full Code Here

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

    String[] terms = query.getTerms();
    WeightedTerm[] weighted = new WeightedTerm[terms.length];
    for (int i=0; i<terms.length; i++) {
      weighted[i] = new WeightedTerm(1.0f, terms[i]);
    }
    Highlighter highlighter = new Highlighter(FORMATTER, new QueryScorer(weighted));
    TokenStream tokens = analyzer.tokenStream("content", new StringReader(text));
    Summary summary = new Summary();
    try {
      // TODO : The max number of fragments (3) should be configurable
      String[] result = highlighter.getBestFragments(tokens, text, 3);
      for (int i=0; i<result.length; i++) {
        String[] parts = result[i].split(SEPARATOR);
        boolean highlight = false;
        for (int j=0; j<parts.length; j++) {
          if (highlight) {
View Full Code Here

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

    public Collection findPages( String query, int flags )
        throws ProviderException
    {
        Searcher  searcher = null;
        ArrayList<SearchResult> list = null;
        Highlighter highlighter = null;

        try
        {
            String[] queryfields = { LUCENE_PAGE_CONTENTS, LUCENE_PAGE_NAME, LUCENE_AUTHOR, LUCENE_ATTACHMENTS };
            QueryParser qp = new MultiFieldQueryParser( queryfields, getLuceneAnalyzer() );

            //QueryParser qp = new QueryParser( LUCENE_PAGE_CONTENTS, getLuceneAnalyzer() );
            Query luceneQuery = qp.parse( query );

            if( (flags & FLAG_CONTEXTS) != 0 )
            {
                highlighter = new Highlighter(new SimpleHTMLFormatter("<span class=\"searchmatch\">", "</span>"),
                                              new SimpleHTMLEncoder(),
                                              new QueryScorer(luceneQuery));
            }

            try
            {
                searcher = new IndexSearcher(m_luceneDirectory);
            }
            catch( Exception ex )
            {
                log.info("Lucene not yet ready; indexing not started",ex);
                return null;
            }

            Hits hits = searcher.search(luceneQuery);

            list = new ArrayList<SearchResult>(hits.length());
            for ( int curr = 0; curr < hits.length(); curr++ )
            {
                Document doc = hits.doc(curr);
                String pageName = doc.get(LUCENE_ID);
                WikiPage page = m_engine.getPage(pageName, WikiPageProvider.LATEST_VERSION);

                if(page != null)
                {
                    if(page instanceof Attachment)
                    {
                        // Currently attachments don't look nice on the search-results page
                        // When the search-results are cleaned up this can be enabled again.
                    }

                    int score = (int)(hits.score(curr) * 100);


                    // Get highlighted search contexts
                    String text = doc.get(LUCENE_PAGE_CONTENTS);

                    String[] fragments = new String[0];
                    if( text != null && highlighter != null )
                    {
                        TokenStream tokenStream = getLuceneAnalyzer()
                        .tokenStream(LUCENE_PAGE_CONTENTS, new StringReader(text));
                        fragments = highlighter.getBestFragments(tokenStream,
                                                                 text, MAX_FRAGMENTS);

                    }

                    SearchResult result = new SearchResultImpl( page, score, fragments );    
View Full Code Here

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

        String content=doc.get("content");
       
        Scorer qs=new QueryScorer(q);
       
        SimpleHTMLFormatter formatter=new SimpleHTMLFormatter("<span class=\"hl\">","</span>");
        Highlighter hl=new Highlighter(formatter,qs);
        String[] fragments=hl.getBestFragments(analyzer, "content",content, 1);
       
        Map<String,String[]> fields=convert(doc);
        fields.put("fragment",fragments);
        hit.setFields(fields);
        hitList.add(hit);
View Full Code Here

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

        String content=doc.get("content");
       
        Scorer qs=new QueryScorer(q);
       
        SimpleHTMLFormatter formatter=new SimpleHTMLFormatter("<span class=\"hl\">","</span>");
        Highlighter hl=new Highlighter(formatter,qs);
        String[] fragments=hl.getBestFragments(analyzer, "content",content, 1);
       
        Map<String,String[]> fields=convert(doc);
        fields.put("fragment",fragments);
        hit.setFields(fields);
        hitList.add(hit);
View Full Code Here

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

  {
   if (queryString.length() > 0)
   { Query query = qp.parse(queryString.toString());
     QueryScorer qScorer = new QueryScorer(query);
     SimpleHTMLFormatter formatter = new SimpleHTMLFormatter("<span class=\"hlight\">", "</span>");
     Highlighter highlighter = new Highlighter(formatter, qScorer);
     Fragmenter fragmenter = new SimpleFragmenter(80);        //*-- use fragments of 50 bytes each
     highlighter.setTextFragmenter(fragmenter);
     TokenStream tokenStream = sAnalyzer.tokenStream("contents", new StringReader(text));
     result = highlighter.getBestFragments(tokenStream, text, 3, "...<br>")//*-- collect upto three fragments
   }
  }
  catch (ParseException pe) { logger.error("Query parse error " + pe.getMessage() ); }

  //*-- if no tokens were extracted, then return the original string
View Full Code Here

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

     *     Then call getSnippet(...) to get the resulting snippet
     */   
    private void addSnippets (GroupedSearchResults res, String snippetOfField,
            int snippetLength, QueryScorer scorer, Formatter simpleHtmlFormatter) throws IOException {      

        Highlighter highlighter = new Highlighter(simpleHtmlFormatter, scorer);
        highlighter.setTextFragmenter(NULL_FRAGMENTER);
        highlighter.setMaxDocCharsToAnalyze(Integer.MAX_VALUE); // make sure the whole text will be analyzed
        // Here we store every seen phrase. It is used to give less score to
        // recurrying phrases
        Set<String> usedSnippets= new HashSet<String>();

        for (int j = 0; j < res.groups() ; j++) {  // for each group
            Vector<Document> resDocs = res.getGroup(j).last();
            int docsLen= resDocs.size();
            for (int i = 0; i < docsLen; i++) { // for each document on that group              
                Document doc = resDocs.get(i); // get the document i
                String text = doc.get(snippetOfField)// text to be snippeted
                if (null == text){
                    logger.warn("Asked to snippet an unexisting field: " + snippetOfField );
                    continue;
                }

                TokenStream tokenStream = queryParser.tokenStream(snippetOfField, new StringReader(text));              
                TextFragment[] fragments = highlighter.getBestTextFragments(tokenStream, text, false, 1);

                String result= null;
                if ( null != fragments  && 0 < fragments.length) {
                    result= getSnippet(fragments[0].toString(), snippetLength, scorer, usedSnippets);
                }
View Full Code Here

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

                new CachingTokenFilter(new DomainSearchAnalyzer().tokenStream(field, new StringReader(text)));

      QueryScorer scorer = new QueryScorer(query, field, "");
      scorer.init(tokenStream);
     
            Highlighter highlighter =
                new Highlighter(new DomainSearchFormatter(), scorer);
            highlighter.setTextFragmenter(fragmenter);
            tokenStream.reset();

            try {
                return highlighter.getBestFragments(tokenStream, text, 2, " ... ");

            } catch (InvalidTokenOffsetsException e) {
                // could not create fragments, return empty string
            }
View Full Code Here

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

        if (shouldNumberBeHighlighted(name, numericValue, fieldFixedQuery)) {
          String numberHighlight = preTag + text + postTag;
          result.add(new StringField(name, numberHighlight, Store.YES));
        }
      } else {
        Highlighter highlighter = new Highlighter(htmlFormatter, new QueryScorer(fieldFixedQuery, name));
        TokenStream tokenStream = TokenSources.getAnyTokenStream(reader, docId, name, analyzer);
        TextFragment[] frag = highlighter.getBestTextFragments(tokenStream, text, false, 10);
        for (int j = 0; j < frag.length; j++) {
          if ((frag[j] != null) && (frag[j].getScore() > 0)) {
            result.add(new StringField(name, frag[j].toString(), Store.YES));
          }
        }
View Full Code Here

Examples of org.dussan.vaadin.dcharts.options.Highlighter

    if (CHART_TYPE_BAR_CHART.equals(type)) {
     
      DataSeries dataSeries = new DataSeries().add((Object[]) values);
      SeriesDefaults seriesDefaults = new SeriesDefaults().setRenderer(SeriesRenderers.BAR);
      Axes axes = new Axes().addAxis(new XYaxis().setRenderer(AxisRenderers.CATEGORY).setTicks(new Ticks().add((Object[]) names)));
      Highlighter highlighter = new Highlighter().setShow(false);
     
      Options options = new Options().setSeriesDefaults(seriesDefaults).setAxes(axes).setHighlighter(highlighter);
      options.setAnimate(true);
      options.setAnimateReplot(true);
     
      chart = new DCharts().setDataSeries(dataSeries).setOptions(options);
     
    } else if(CHART_TYPE_PIE_CHART.equals(type)) {
     
      DataSeries dataSeries = new DataSeries().newSeries();
      for (int i=0; i<names.length; i++) {
        dataSeries.add(names[i], values[i]);
      }
      SeriesDefaults seriesDefaults = new SeriesDefaults().setRenderer(SeriesRenderers.PIE);
     
      Options options = new Options().setSeriesDefaults(seriesDefaults);
      options.setAnimate(true);
      options.setAnimateReplot(true);
     
      Legend legend = new Legend().setShow(true).setPlacement(LegendPlacements.INSIDE);
      options.setLegend(legend);
     
      Highlighter highlighter = new Highlighter().setShow(true);
      options.setHighlighter(highlighter);
     
      chart = new DCharts().setDataSeries(dataSeries).setOptions(options);
     
    } else if (CHART_TYPE_LINE_CHART.equals(type)) {

      AxesDefaults axesDefaults = new AxesDefaults().setLabelRenderer(LabelRenderers.CANVAS);
      Axes axes = new Axes()
        .addAxis(new XYaxis().setLabel(xAxis != null ? xAxis : "").setMin(names[0]).setMax(names[values.length - 1]).setDrawMajorTickMarks(true))
        .addAxis(new XYaxis(XYaxes.Y).setLabel(yAxis != null ? yAxis : "").setDrawMajorTickMarks(true));
      Options options = new Options().setAxesDefaults(axesDefaults).setAxes(axes);
      DataSeries dataSeries = new DataSeries().newSeries();
      for (int i=0; i<names.length; i++) {
      
//        if (parseLong(names[i]) != null) {
//          dataSeries.add(parseLong(names[i]), values[i]);
//        } else if (parseDouble(names[i]) != null) {
//          dataSeries.add(parseDouble(names[i]), values[i]);
//        } else {
//          dataSeries.add(names[i], values[i]);
//        }
       
        dataSeries.add(names[i], values[i]);
       
      }
     
      Series series = new Series().addSeries(
              new XYseries().setShowLine(true).setMarkerOptions(new MarkerRenderer().setShadow(true).setSize(7).setStyle(MarkerStyles.CIRCLE)));
      options.setSeries(series);
     
      options.setAnimate(true);
      options.setAnimateReplot(true);
     
      Highlighter highlighter = new Highlighter().setShow(true);
      options.setHighlighter(highlighter);
     
      chart = new DCharts().setDataSeries(dataSeries).setOptions(options);
     
    } else if (CHART_TYPE_LIST.equals(type)) {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.