﻿<!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.Sandbox.Queries
   | Apache Lucene.NET 4.8.0-beta00008 Documentation </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Namespace Lucene.Net.Sandbox.Queries
   | Apache Lucene.NET 4.8.0-beta00008 Documentation ">
    <meta name="generator" content="docfx 2.50.0.0">
    
    <link rel="shortcut icon" href="../../logo/favicon.ico">
    <link rel="stylesheet" href="../../styles/docfx.vendor.css">
    <link rel="stylesheet" href="../../styles/docfx.css">
    <link rel="stylesheet" href="../../styles/main.css">
    <meta property="docfx:navrel" content="../../toc.html">
    <meta property="docfx:tocrel" content="../toc.html">
    
    <meta property="docfx:rel" content="../../">
    
  </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="../../index.html">
                <img id="logo" class="svg" src="../../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" id="breadcrumb">
            <ul class="breadcrumb">
              <li></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.Sandbox.Queries">
  
  <h1 id="Lucene_Net_Sandbox_Queries" data-uid="Lucene.Net.Sandbox.Queries" class="text-break">Namespace Lucene.Net.Sandbox.Queries
  </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>Additional queries (some may have caveats or limitations)</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.Sandbox.Queries.DuplicateFilter.html">DuplicateFilter</a></h4>
      <section><p>Filter to remove duplicate values from search results.
<p>
WARNING: for this to work correctly, you may have to wrap
your reader as it cannot current deduplicate across different
index segments.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Sandbox.Queries.FuzzyLikeThisQuery.html">FuzzyLikeThisQuery</a></h4>
      <section><p>Fuzzifies ALL terms provided as strings and then picks the best n differentiating terms.
In effect this mixes the behaviour of <a class="xref" href="../Lucene.Net/Lucene.Net.Search.FuzzyQuery.html">FuzzyQuery</a> and MoreLikeThis but with special consideration
of fuzzy scoring factors.
This generally produces good results for queries where users may provide details in a number of 
fields and have no knowledge of boolean query syntax and also want a degree of fuzzy matching and
a fast query.
<p>
For each source term the fuzzy variants are held in a <a class="xref" href="../Lucene.Net/Lucene.Net.Search.BooleanQuery.html">BooleanQuery</a> with no coord factor (because
we are not looking for matches on multiple variants in any one doc). Additionally, a specialized
<a class="xref" href="../Lucene.Net/Lucene.Net.Search.TermQuery.html">TermQuery</a> is used for variants and does not use that variant term&apos;s IDF because this would favour rarer 
terms eg misspellings. Instead, all variants use the same IDF ranking (the one for the source query 
term) and this is factored into the variant&apos;s boost. If the source query term does not exist in the
index the average IDF of the variants is used.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Sandbox.Queries.SlowFuzzyQuery.html">SlowFuzzyQuery</a></h4>
      <section><p>Implements the classic fuzzy search query. The similarity measurement
is based on the Levenshtein (edit distance) algorithm.
<p>
Note that, unlike <a class="xref" href="../Lucene.Net/Lucene.Net.Search.FuzzyQuery.html">FuzzyQuery</a>, this query will silently allow
for a (possibly huge) number of edit distances in comparisons, and may
be extremely slow (comparing every term in the index).</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Sandbox.Queries.SlowFuzzyTermsEnum.html">SlowFuzzyTermsEnum</a></h4>
      <section><p>Potentially slow fuzzy <a class="xref" href="../Lucene.Net/Lucene.Net.Index.TermsEnum.html">TermsEnum</a> for enumerating all terms that are similar
to the specified filter term.
<p>
If the minSimilarity or maxEdits is greater than the Automaton&apos;s
allowable range, this backs off to the classic (brute force)
fuzzy terms enum method by calling <a class="xref" href="../Lucene.Net/Lucene.Net.Search.FuzzyTermsEnum.html#Lucene_Net_Search_FuzzyTermsEnum_GetAutomatonEnum_System_Int32_Lucene_Net_Util_BytesRef_">GetAutomatonEnum(Int32, BytesRef)</a>.
<p>
Term enumerations are always ordered by
<a class="xref" href="../Lucene.Net/Lucene.Net.Search.FuzzyTermsEnum.html#Lucene_Net_Search_FuzzyTermsEnum_Comparer">Comparer</a>. Each term in the enumeration is
greater than all that precede it.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Sandbox.Queries.SortedSetSortField.html">SortedSetSortField</a></h4>
      <section><p>SortField for <a class="xref" href="../Lucene.Net/Lucene.Net.Index.SortedSetDocValues.html">SortedSetDocValues</a>.
<p>
A <a class="xref" href="../Lucene.Net/Lucene.Net.Index.SortedSetDocValues.html">SortedSetDocValues</a> contains multiple values for a field, so sorting with
this technique &quot;selects&quot; a value as the representative sort value for the document.
<p>
By default, the minimum value in the set is selected as the sort value, but
this can be customized. Selectors other than the default do have some limitations
(see below) to ensure that all selections happen in constant-time for performance.
<p>
Like sorting by string, this also supports sorting missing values as first or last,
via <a class="xref" href="Lucene.Net.Sandbox.Queries.SortedSetSortField.html#Lucene_Net_Sandbox_Queries_SortedSetSortField_MissingValue">MissingValue</a>.
<p>
Limitations:
<ul><li>
    Fields containing <span class="xref">System.Int32.MaxValue</span> or more unique values
    are unsupported.
</li><li>
Selectors other than the default <a class="xref" href="Lucene.Net.Sandbox.Queries.Selector.html#Lucene_Net_Sandbox_Queries_Selector_MIN">MIN</a> require 
optional codec support. However several codecs provided by Lucene,
including the current default codec, support this.
</li></ul></p>
</section>
    <h3 id="enums">Enums
  </h3>
      <h4><a class="xref" href="Lucene.Net.Sandbox.Queries.KeepMode.html">KeepMode</a></h4>
      <section><p>KeepMode determines which document id to consider as the master, all others being
identified as duplicates. Selecting the &quot;first occurrence&quot; can potentially save on IO.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Sandbox.Queries.ProcessingMode.html">ProcessingMode</a></h4>
      <section><p>&quot;Full&quot; processing mode starts by setting all bits to false and only setting bits
for documents that contain the given field and are identified as none-duplicates.
<p>
&quot;Fast&quot; processing sets all bits to true then unsets all duplicate docs found for the
given field. This approach avoids the need to read DocsEnum for terms that are seen
to have a document frequency of exactly &quot;1&quot; (i.e. no duplicates). While a potentially
faster approach , the downside is that bitsets produced will include bits set for
documents that do not actually contain the field given.</p>
</section>
      <h4><a class="xref" href="Lucene.Net.Sandbox.Queries.Selector.html">Selector</a></h4>
      <section><p>Selects a value from the document&apos;s set to use as the sort value</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-beta00008/src/Lucene.Net.Sandbox/Queries/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="../../styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="../../styles/docfx.js"></script>
    <script type="text/javascript" src="../../styles/main.js"></script>
  </body>
</html>
