﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Namespace Lucene.Net.Search.VectorHighlight
   | Apache Lucene.NET 4.8.0-beta00010 Documentation </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Namespace Lucene.Net.Search.VectorHighlight
   | Apache Lucene.NET 4.8.0-beta00010 Documentation ">
    <meta name="generator" content="docfx 2.56.0.0">
    
    <link rel="shortcut icon" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/logo/favicon.ico">
    <link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.vendor.css">
    <link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.css">
    <link rel="stylesheet" href="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/main.css">
    <meta property="docfx:navrel" content="toc.html">
    <meta property="docfx:tocrel" content="highlighter/toc.html">
    
    <meta property="docfx:rel" content="https://lucenenet.apache.org/docs/4.8.0-beta00009/">
    
  </head>
  <body data-spy="scroll" data-target="#affix" data-offset="120">
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="/">
                <img id="logo" class="svg" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/logo/lucene-net-color.png" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
        
        <div class="subnav navbar navbar-default">
          <div class="container hide-when-search">
            <ul class="level0 breadcrumb">
                <li>
                    <a href="https://lucenenet.apache.org/docs/4.8.0-beta00009/">API</a>
                     <span id="breadcrumb">
                        <ul class="breadcrumb">
                          <li></li>
                        </ul>
                    </span>   
                </li>
            </ul>
          </div>
        </div>
      </header>
      <div class="container body-content">
        
        <div id="search-results">
          <div class="search-list"></div>
          <div class="sr-items">
            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
          </div>
          <ul id="pagination"></ul>
        </div>
      </div>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="Lucene.Net.Search.VectorHighlight">
  
  <h1 id="Lucene_Net_Search_VectorHighlight" data-uid="Lucene.Net.Search.VectorHighlight" class="text-break">Namespace Lucene.Net.Search.VectorHighlight
  </h1>
  <div class="markdown level0 summary"><!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->
<p>This is an another highlighter implementation.</p>
<h2 id="features">Features</h2>
<ul>
<li><p>fast for large docs</p>
</li>
<li><p>support N-gram fields</p>
</li>
<li><p>support phrase-unit highlighting with slops</p>
</li>
<li><p>support multi-term (includes wildcard, range, regexp, etc) queries</p>
</li>
<li><p>need Java 1.5</p>
</li>
<li><p>highlight fields need to be stored with Positions and Offsets</p>
</li>
<li><p>take into account query boost and/or IDF-weight to score fragments</p>
</li>
<li><p>support colored highlight tags</p>
</li>
<li><p>pluggable FragListBuilder / FieldFragList</p>
</li>
<li><p>pluggable FragmentsBuilder</p>
</li>
</ul>
<h2 id="algorithm">Algorithm</h2>
<p>To explain the algorithm, let&#39;s use the following sample text (to be highlighted) and user query:</p>
<table border="1">
<tr>
<td><strong>Sample Text</strong></td>
<td>Lucene is a search engine library.</td>
</tr>
<tr>
<td><strong>User Query</strong></td>
<td>Lucene^2 OR &quot;search library&quot;~1</td>
</tr>
</table>

<p>The user query is a BooleanQuery that consists of TermQuery(&quot;Lucene&quot;) with boost of 2 and PhraseQuery(&quot;search library&quot;) with slop of 1.</p>
<p>For your convenience, here is the offsets and positions info of the sample text.</p>
<pre><code>+--------+-----------------------------------+
|        |          1111111111222222222233333|
|  offset|01234567890123456789012345678901234|
+--------+-----------------------------------+
|document|Lucene is a search engine library. |
+--------*-----------------------------------+
|position|0      1  2 3      4      5        |
+--------*-----------------------------------+
</code></pre><h3 id="step-1">Step 1.</h3>
<p>In Step 1, Fast Vector Highlighter generates <a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldQuery.QueryPhraseMap.html">FieldQuery.QueryPhraseMap</a> from the user query. <code>QueryPhraseMap</code> consists of the following members:</p>
<pre><code>public class QueryPhraseMap {
  boolean terminal;
  int slop;   // valid if terminal == true and phraseHighlight == true
  float boost;  // valid if terminal == true
  Map&lt;String, QueryPhraseMap&gt; subMap;
} 
</code></pre><p><code>QueryPhraseMap</code> has subMap. The key of the subMap is a term text in the user query and the value is a subsequent <code>QueryPhraseMap</code>. If the query is a term (not phrase), then the subsequent <code>QueryPhraseMap</code> is marked as terminal. If the query is a phrase, then the subsequent <code>QueryPhraseMap</code> is not a terminal and it has the next term text in the phrase.</p>
<p>From the sample user query, the following <code>QueryPhraseMap</code> will be generated:</p>
<pre><code>   QueryPhraseMap
+--------+-+  +-------+-+
|&quot;Lucene&quot;|o+-&gt;|boost=2|*|  * : terminal
+--------+-+  +-------+-+
</code></pre><p>+--------+-+  +---------+-+  +-------+------+-+
    |&quot;search&quot;|o+-&gt;|&quot;library&quot;|o+-&gt;|boost=1|slop=1|*|
    +--------+-+  +---------+-+  +-------+------+-+</p>
<h3 id="step-2">Step 2.</h3>
<p>In Step 2, Fast Vector Highlighter generates <a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldTermStack.html">FieldTermStack</a>. Fast Vector Highlighter uses term vector data (must be stored <a class="xref" href="http://localhost:8080/api/core/Lucene.Net.Documents.FieldType.html">#setStoreTermVectorOffsets(boolean)</a> and <a class="xref" href="http://localhost:8080/api/core/Lucene.Net.Documents.FieldType.html">#setStoreTermVectorPositions(boolean)</a>) to generate it. <code>FieldTermStack</code> keeps the terms in the user query. Therefore, in this sample case, Fast Vector Highlighter generates the following <code>FieldTermStack</code>:</p>
<pre><code>   FieldTermStack
+------------------+
|&quot;Lucene&quot;(0,6,0)   |
+------------------+
|&quot;search&quot;(12,18,3) |
+------------------+
|&quot;library&quot;(26,33,5)|
+------------------+
where : &quot;termText&quot;(startOffset,endOffset,position)
</code></pre><h3 id="step-3">Step 3.</h3>
<p>In Step 3, Fast Vector Highlighter generates <a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldPhraseList.html">FieldPhraseList</a> by reference to <code>QueryPhraseMap</code> and <code>FieldTermStack</code>.</p>
<pre><code>   FieldPhraseList
+----------------+-----------------+---+
|&quot;Lucene&quot;        |[(0,6)]          |w=2|
+----------------+-----------------+---+
|&quot;search library&quot;|[(12,18),(26,33)]|w=1|
+----------------+-----------------+---+
</code></pre><p>The type of each entry is <code>WeightedPhraseInfo</code> that consists of an array of terms offsets and weight. </p>
<h3 id="step-4">Step 4.</h3>
<p>In Step 4, Fast Vector Highlighter creates <code>FieldFragList</code> by reference to <code>FieldPhraseList</code>. In this sample case, the following <code>FieldFragList</code> will be generated:</p>
<pre><code>   FieldFragList
+---------------------------------+
|&quot;Lucene&quot;[(0,6)]                  |
|&quot;search library&quot;[(12,18),(26,33)]|
|totalBoost=3                     |
+---------------------------------+
</code></pre><p>The calculation for each <code>FieldFragList.WeightedFragInfo.totalBoost</code> (weight)<br>depends on the implementation of <code>FieldFragList.add( ... )</code>:</p>
<pre><code>  public void add( int startOffset, int endOffset, List&lt;WeightedPhraseInfo&gt; phraseInfoList ) {
    float totalBoost = 0;
    List&lt;SubInfo&gt; subInfos = new ArrayList&lt;SubInfo&gt;();
    for( WeightedPhraseInfo phraseInfo : phraseInfoList ){
      subInfos.add( new SubInfo( phraseInfo.getText(), phraseInfo.getTermsOffsets(), phraseInfo.getSeqnum() ) );
      totalBoost += phraseInfo.getBoost();
    }
    getFragInfos().add( new WeightedFragInfo( startOffset, endOffset, subInfos, totalBoost ) );
  }
</code></pre><p>The used implementation of <code>FieldFragList</code> is noted in <code>BaseFragListBuilder.createFieldFragList( ... )</code>:</p>
<pre><code>  public FieldFragList createFieldFragList( FieldPhraseList fieldPhraseList, int fragCharSize ){
    return createFieldFragList( fieldPhraseList, new SimpleFieldFragList( fragCharSize ), fragCharSize );
  }
</code></pre><p> Currently there are basically to approaches available: </p>
<ul>
<li><p><code>SimpleFragListBuilder using SimpleFieldFragList</code>: <em>sum-of-boosts</em>-approach. The totalBoost is calculated by summarizing the query-boosts per term. Per default a term is boosted by 1.0</p>
</li>
<li><p><code>WeightedFragListBuilder using WeightedFieldFragList</code>: <em>sum-of-distinct-weights</em>-approach. The totalBoost is calculated by summarizing the IDF-weights of distinct terms.</p>
</li>
</ul>
<p>Comparison of the two approaches:</p>
<table border="1">
<caption>
    query = das alte testament (The Old Testament)
</caption>
<tr><th>Terms in fragment</th><th>sum-of-distinct-weights</th><th>sum-of-boosts</th></tr>
<tr><td>das alte testament</td><td>5.339621</td><td>3.0</td></tr>
<tr><td>das alte testament</td><td>5.339621</td><td>3.0</td></tr>
<tr><td>das testament alte</td><td>5.339621</td><td>3.0</td></tr>
<tr><td>das alte testament</td><td>5.339621</td><td>3.0</td></tr>
<tr><td>das testament</td><td>2.9455688</td><td>2.0</td></tr>
<tr><td>das alte</td><td>2.4759595</td><td>2.0</td></tr>
<tr><td>das das das das</td><td>1.5015357</td><td>4.0</td></tr>
<tr><td>das das das</td><td>1.3003681</td><td>3.0</td></tr>
<tr><td>das das</td><td>1.061746</td><td>2.0</td></tr>
<tr><td>alte</td><td>1.0</td><td>1.0</td></tr>
<tr><td>alte</td><td>1.0</td><td>1.0</td></tr>
<tr><td>das</td><td>0.7507678</td><td>1.0</td></tr>
<tr><td>das</td><td>0.7507678</td><td>1.0</td></tr>
<tr><td>das</td><td>0.7507678</td><td>1.0</td></tr>
<tr><td>das</td><td>0.7507678</td><td>1.0</td></tr>
<tr><td>das</td><td>0.7507678</td><td>1.0</td></tr>
</table>

<h3 id="step-5">Step 5.</h3>
<p>In Step 5, by using <code>FieldFragList</code> and the field stored data, Fast Vector Highlighter creates highlighted snippets!</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="markdown level0 remarks"></div>
    <h3 id="classes">Classes
  </h3>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.BaseFragListBuilder.html">BaseFragListBuilder</a></h4>
      <section><p>A abstract implementation of <a class="xref" href="Lucene.Net.Search.VectorHighlight.IFragListBuilder.html">IFragListBuilder</a>.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.BaseFragmentsBuilder.html">BaseFragmentsBuilder</a></h4>
      <section><p>Base <a class="xref" href="Lucene.Net.Search.VectorHighlight.IFragmentsBuilder.html">IFragmentsBuilder</a> implementation that supports colored pre/post
tags and multivalued fields.
<p>
Uses <a class="xref" href="Lucene.Net.Search.VectorHighlight.IBoundaryScanner.html">IBoundaryScanner</a> to determine fragments.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.FastVectorHighlighter.html">FastVectorHighlighter</a></h4>
      <section><p>Another highlighter implementation.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldFragList.html">FieldFragList</a></h4>
      <section><p>FieldFragList has a list of &quot;frag info&quot; that is used by <a class="xref" href="Lucene.Net.Search.VectorHighlight.IFragmentsBuilder.html">IFragmentsBuilder</a> class
to create fragments (snippets).</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldFragList.WeightedFragInfo.html">FieldFragList.WeightedFragInfo</a></h4>
      <section><p>List of term offsets + weight for a frag info</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldFragList.WeightedFragInfo.SubInfo.html">FieldFragList.WeightedFragInfo.SubInfo</a></h4>
      <section><p>Represents the list of term offsets for some text</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldPhraseList.html">FieldPhraseList</a></h4>
      <section><p>FieldPhraseList has a list of WeightedPhraseInfo that is used by FragListBuilder
to create a FieldFragList object.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldPhraseList.WeightedPhraseInfo.html">FieldPhraseList.WeightedPhraseInfo</a></h4>
      <section><p>Represents the list of term offsets and boost for some text</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldPhraseList.WeightedPhraseInfo.Toffs.html">FieldPhraseList.WeightedPhraseInfo.Toffs</a></h4>
      <section><p>Term offsets (start + end)</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldQuery.html">FieldQuery</a></h4>
      <section><p><a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldQuery.html">FieldQuery</a> breaks down query object into terms/phrases and keeps
them in a <a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldQuery.QueryPhraseMap.html">FieldQuery.QueryPhraseMap</a> structure.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldQuery.QueryPhraseMap.html">FieldQuery.QueryPhraseMap</a></h4>
      <section><p>Internal structure of a query for highlighting: represents
a nested query structure</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldTermStack.html">FieldTermStack</a></h4>
      <section><p><a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldTermStack.html">FieldTermStack</a> is a stack that keeps query terms in the specified field
of the document to be highlighted.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldTermStack.TermInfo.html">FieldTermStack.TermInfo</a></h4>
      <section><p>Single term with its position/offsets in the document and IDF weight.
It is <span class="xref">System.IComparable&lt;T&gt;</span> but considers only position.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.ScoreOrderFragmentsBuilder.html">ScoreOrderFragmentsBuilder</a></h4>
      <section><p>An implementation of FragmentsBuilder that outputs score-order fragments.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.ScoreOrderFragmentsBuilder.ScoreComparer.html">ScoreOrderFragmentsBuilder.ScoreComparer</a></h4>
      <section><p><span class="xref">System.Collections.Generic.IComparer&lt;T&gt;</span> for <a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldFragList.WeightedFragInfo.html">FieldFragList.WeightedFragInfo</a> by boost, breaking ties 
by offset.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.SimpleBoundaryScanner.html">SimpleBoundaryScanner</a></h4>
      <section><p>Simple boundary scanner implementation that divides fragments
based on a set of separator characters.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.SimpleFieldFragList.html">SimpleFieldFragList</a></h4>
      <section><p>A simple implementation of <a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldFragList.html">FieldFragList</a>.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.SimpleFragListBuilder.html">SimpleFragListBuilder</a></h4>
      <section><p>A simple implementation of <a class="xref" href="Lucene.Net.Search.VectorHighlight.IFragListBuilder.html">IFragListBuilder</a>.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.SimpleFragmentsBuilder.html">SimpleFragmentsBuilder</a></h4>
      <section><p>A simple implementation of FragmentsBuilder.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.SingleFragListBuilder.html">SingleFragListBuilder</a></h4>
      <section><p>An implementation class of <a class="xref" href="Lucene.Net.Search.VectorHighlight.IFragListBuilder.html">IFragListBuilder</a> that generates one <a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldFragList.WeightedFragInfo.html">FieldFragList.WeightedFragInfo</a> object.
Typical use case of this class is that you can get an entire field contents
by using both of this class and <a class="xref" href="Lucene.Net.Search.VectorHighlight.SimpleFragmentsBuilder.html">SimpleFragmentsBuilder</a>.
<p>
<pre><code>FastVectorHighlighter h = new FastVectorHighlighter( true, true,
    new SingleFragListBuilder(), new SimpleFragmentsBuilder() );</code></pre>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.WeightedFieldFragList.html">WeightedFieldFragList</a></h4>
      <section><p>A weighted implementation of <a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldFragList.html">FieldFragList</a>.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.WeightedFragListBuilder.html">WeightedFragListBuilder</a></h4>
      <section><p>A weighted implementation of <a class="xref" href="Lucene.Net.Search.VectorHighlight.IFragListBuilder.html">IFragListBuilder</a>.</p>
</section>
    <h3 id="interfaces">Interfaces
  </h3>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.IBoundaryScanner.html">IBoundaryScanner</a></h4>
      <section><p>Finds fragment boundaries: pluggable into <a class="xref" href="Lucene.Net.Search.VectorHighlight.BaseFragmentsBuilder.html">BaseFragmentsBuilder</a></p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.IFragListBuilder.html">IFragListBuilder</a></h4>
      <section><p><a class="xref" href="Lucene.Net.Search.VectorHighlight.IFragListBuilder.html">IFragListBuilder</a> is an interface for <a class="xref" href="Lucene.Net.Search.VectorHighlight.FieldFragList.html">FieldFragList</a> builder classes.
A <a class="xref" href="Lucene.Net.Search.VectorHighlight.IFragListBuilder.html">IFragListBuilder</a> class can be plugged in to <a class="xref" href="Lucene.Net.Search.Highlight.Highlighter.html">Highlighter</a>.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Search.VectorHighlight.IFragmentsBuilder.html">IFragmentsBuilder</a></h4>
      <section><p><a class="xref" href="Lucene.Net.Search.VectorHighlight.IFragmentsBuilder.html">IFragmentsBuilder</a> is an interface for fragments (snippets) builder classes.
A <a class="xref" href="Lucene.Net.Search.VectorHighlight.IFragmentsBuilder.html">IFragmentsBuilder</a> class can be plugged in to
<a class="xref" href="Lucene.Net.Search.VectorHighlight.FastVectorHighlighter.html">FastVectorHighlighter</a>.</p>
</section>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <div class="contribution">
                <ul class="nav">
                  <li>
                    <a href="https://github.com/apache/lucenenet/blob/docs/4.8.0-beta00010/src/Lucene.Net.Highlighter/VectorHighlight/package.md/#L2" class="contribution-link">Improve this Doc</a>
                  </li>
                </ul>
              </div>
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            Copyright © 2020 Licensed to the Apache Software Foundation (ASF)
            
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/docfx.js"></script>
    <script type="text/javascript" src="https://lucenenet.apache.org/docs/4.8.0-beta00009/styles/main.js"></script>
  </body>
</html>
