﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class FastTaxonomyFacetCounts
   | Apache Lucene.NET 4.8.0-beta00013 Documentation </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class FastTaxonomyFacetCounts
   | Apache Lucene.NET 4.8.0-beta00013 Documentation ">
    <meta name="generator" content="docfx 2.56.2.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="facet/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">
    <span id="forkongithub"><a href="https://github.com/apache/lucenenet" target="_blank">Fork me on GitHub</a></span>
    <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.Facet.Taxonomy.FastTaxonomyFacetCounts">
  
  
  <h1 id="Lucene_Net_Facet_Taxonomy_FastTaxonomyFacetCounts" data-uid="Lucene.Net.Facet.Taxonomy.FastTaxonomyFacetCounts" class="text-break">Class FastTaxonomyFacetCounts
  </h1>
  <div class="markdown level0 summary"><p>Computes facets counts, assuming the default encoding
into DocValues was used.</p>
<div class="lucene-block lucene-experimental">This is a Lucene.NET EXPERIMENTAL API, use at your own risk</div><p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><span class="xref">System.Object</span></div>
    <div class="level1"><a class="xref" href="Lucene.Net.Facet.Facets.html">Facets</a></div>
    <div class="level2"><a class="xref" href="Lucene.Net.Facet.Taxonomy.TaxonomyFacets.html">TaxonomyFacets</a></div>
    <div class="level3"><a class="xref" href="Lucene.Net.Facet.Taxonomy.Int32TaxonomyFacets.html">Int32TaxonomyFacets</a></div>
    <div class="level4"><span class="xref">FastTaxonomyFacetCounts</span></div>
  </div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <a class="xref" href="Lucene.Net.Facet.Taxonomy.Int32TaxonomyFacets.html#Lucene_Net_Facet_Taxonomy_Int32TaxonomyFacets_m_values">Int32TaxonomyFacets.m_values</a>
    </div>
    <div>
      <a class="xref" href="Lucene.Net.Facet.Taxonomy.Int32TaxonomyFacets.html#Lucene_Net_Facet_Taxonomy_Int32TaxonomyFacets_Rollup">Int32TaxonomyFacets.Rollup()</a>
    </div>
    <div>
      <a class="xref" href="Lucene.Net.Facet.Taxonomy.Int32TaxonomyFacets.html#Lucene_Net_Facet_Taxonomy_Int32TaxonomyFacets_GetSpecificValue_System_String_System_String___">Int32TaxonomyFacets.GetSpecificValue(String, String[])</a>
    </div>
    <div>
      <a class="xref" href="Lucene.Net.Facet.Taxonomy.Int32TaxonomyFacets.html#Lucene_Net_Facet_Taxonomy_Int32TaxonomyFacets_GetTopChildren_System_Int32_System_String_System_String___">Int32TaxonomyFacets.GetTopChildren(Int32, String, String[])</a>
    </div>
    <div>
      <a class="xref" href="Lucene.Net.Facet.Taxonomy.TaxonomyFacets.html#Lucene_Net_Facet_Taxonomy_TaxonomyFacets_m_indexFieldName">TaxonomyFacets.m_indexFieldName</a>
    </div>
    <div>
      <a class="xref" href="Lucene.Net.Facet.Taxonomy.TaxonomyFacets.html#Lucene_Net_Facet_Taxonomy_TaxonomyFacets_m_taxoReader">TaxonomyFacets.m_taxoReader</a>
    </div>
    <div>
      <a class="xref" href="Lucene.Net.Facet.Taxonomy.TaxonomyFacets.html#Lucene_Net_Facet_Taxonomy_TaxonomyFacets_m_config">TaxonomyFacets.m_config</a>
    </div>
    <div>
      <a class="xref" href="Lucene.Net.Facet.Taxonomy.TaxonomyFacets.html#Lucene_Net_Facet_Taxonomy_TaxonomyFacets_m_children">TaxonomyFacets.m_children</a>
    </div>
    <div>
      <a class="xref" href="Lucene.Net.Facet.Taxonomy.TaxonomyFacets.html#Lucene_Net_Facet_Taxonomy_TaxonomyFacets_m_siblings">TaxonomyFacets.m_siblings</a>
    </div>
    <div>
      <a class="xref" href="Lucene.Net.Facet.Taxonomy.TaxonomyFacets.html#Lucene_Net_Facet_Taxonomy_TaxonomyFacets_VerifyDim_System_String_">TaxonomyFacets.VerifyDim(String)</a>
    </div>
    <div>
      <a class="xref" href="Lucene.Net.Facet.Taxonomy.TaxonomyFacets.html#Lucene_Net_Facet_Taxonomy_TaxonomyFacets_GetAllDims_System_Int32_">TaxonomyFacets.GetAllDims(Int32)</a>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.GetHashCode()</span>
    </div>
    <div>
      <span class="xref">System.Object.GetType()</span>
    </div>
    <div>
      <span class="xref">System.Object.MemberwiseClone()</span>
    </div>
    <div>
      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.ToString()</span>
    </div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="Lucene.Net.Facet.Taxonomy.html">Lucene.Net.Facet.Taxonomy</a></h6>
  <h6><strong>Assembly</strong>: Lucene.Net.Facet.dll</h6>
  <h5 id="Lucene_Net_Facet_Taxonomy_FastTaxonomyFacetCounts_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class FastTaxonomyFacetCounts : Int32TaxonomyFacets</code></pre>
  </div>
  <h3 id="constructors">Constructors
  </h3>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Facet_Taxonomy_FastTaxonomyFacetCounts__ctor_Lucene_Net_Facet_Taxonomy_TaxonomyReader_Lucene_Net_Facet_FacetsConfig_Lucene_Net_Facet_FacetsCollector_.md&amp;value=---%0Auid%3A%20Lucene.Net.Facet.Taxonomy.FastTaxonomyFacetCounts.%23ctor(Lucene.Net.Facet.Taxonomy.TaxonomyReader%2CLucene.Net.Facet.FacetsConfig%2CLucene.Net.Facet.FacetsCollector)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Facet/Taxonomy/FastTaxonomyFacetCounts.cs/#L39">View Source</a>
  </span>
  <a id="Lucene_Net_Facet_Taxonomy_FastTaxonomyFacetCounts__ctor_" data-uid="Lucene.Net.Facet.Taxonomy.FastTaxonomyFacetCounts.#ctor*"></a>
  <h4 id="Lucene_Net_Facet_Taxonomy_FastTaxonomyFacetCounts__ctor_Lucene_Net_Facet_Taxonomy_TaxonomyReader_Lucene_Net_Facet_FacetsConfig_Lucene_Net_Facet_FacetsCollector_" data-uid="Lucene.Net.Facet.Taxonomy.FastTaxonomyFacetCounts.#ctor(Lucene.Net.Facet.Taxonomy.TaxonomyReader,Lucene.Net.Facet.FacetsConfig,Lucene.Net.Facet.FacetsCollector)">FastTaxonomyFacetCounts(TaxonomyReader, FacetsConfig, FacetsCollector)</h4>
  <div class="markdown level1 summary"><p>Create <a class="xref" href="Lucene.Net.Facet.Taxonomy.FastTaxonomyFacetCounts.html">FastTaxonomyFacetCounts</a>, which also
counts all facet labels. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public FastTaxonomyFacetCounts(TaxonomyReader taxoReader, FacetsConfig config, FacetsCollector fc)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Lucene.Net.Facet.Taxonomy.TaxonomyReader.html">TaxonomyReader</a></td>
        <td><span class="parametername">taxoReader</span></td>
        <td></td>
      </tr>
      <tr>
        <td><a class="xref" href="Lucene.Net.Facet.FacetsConfig.html">FacetsConfig</a></td>
        <td><span class="parametername">config</span></td>
        <td></td>
      </tr>
      <tr>
        <td><a class="xref" href="Lucene.Net.Facet.FacetsCollector.html">FacetsCollector</a></td>
        <td><span class="parametername">fc</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <span class="small pull-right mobile-hide">
    <span class="divider">|</span>
    <a href="https://github.com/apache/lucenenet/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Facet_Taxonomy_FastTaxonomyFacetCounts__ctor_System_String_Lucene_Net_Facet_Taxonomy_TaxonomyReader_Lucene_Net_Facet_FacetsConfig_Lucene_Net_Facet_FacetsCollector_.md&amp;value=---%0Auid%3A%20Lucene.Net.Facet.Taxonomy.FastTaxonomyFacetCounts.%23ctor(System.String%2CLucene.Net.Facet.Taxonomy.TaxonomyReader%2CLucene.Net.Facet.FacetsConfig%2CLucene.Net.Facet.FacetsCollector)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc</a>
  </span>
  <span class="small pull-right mobile-hide">
    <a href="https://github.com/NightOwl888/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Facet/Taxonomy/FastTaxonomyFacetCounts.cs/#L51">View Source</a>
  </span>
  <a id="Lucene_Net_Facet_Taxonomy_FastTaxonomyFacetCounts__ctor_" data-uid="Lucene.Net.Facet.Taxonomy.FastTaxonomyFacetCounts.#ctor*"></a>
  <h4 id="Lucene_Net_Facet_Taxonomy_FastTaxonomyFacetCounts__ctor_System_String_Lucene_Net_Facet_Taxonomy_TaxonomyReader_Lucene_Net_Facet_FacetsConfig_Lucene_Net_Facet_FacetsCollector_" data-uid="Lucene.Net.Facet.Taxonomy.FastTaxonomyFacetCounts.#ctor(System.String,Lucene.Net.Facet.Taxonomy.TaxonomyReader,Lucene.Net.Facet.FacetsConfig,Lucene.Net.Facet.FacetsCollector)">FastTaxonomyFacetCounts(String, TaxonomyReader, FacetsConfig, FacetsCollector)</h4>
  <div class="markdown level1 summary"><p>Create <a class="xref" href="Lucene.Net.Facet.Taxonomy.FastTaxonomyFacetCounts.html">FastTaxonomyFacetCounts</a>, using the
specified <code data-dev-comment-type="paramref" class="paramref">indexFieldName</code> for ordinals.  Use
this if you had set <a class="xref" href="Lucene.Net.Facet.FacetsConfig.html#Lucene_Net_Facet_FacetsConfig_SetIndexFieldName_System_String_System_String_">SetIndexFieldName(String, String)</a>
to change the index
field name for certain dimensions. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public FastTaxonomyFacetCounts(string indexFieldName, TaxonomyReader taxoReader, FacetsConfig config, FacetsCollector fc)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.String</span></td>
        <td><span class="parametername">indexFieldName</span></td>
        <td></td>
      </tr>
      <tr>
        <td><a class="xref" href="Lucene.Net.Facet.Taxonomy.TaxonomyReader.html">TaxonomyReader</a></td>
        <td><span class="parametername">taxoReader</span></td>
        <td></td>
      </tr>
      <tr>
        <td><a class="xref" href="Lucene.Net.Facet.FacetsConfig.html">FacetsConfig</a></td>
        <td><span class="parametername">config</span></td>
        <td></td>
      </tr>
      <tr>
        <td><a class="xref" href="Lucene.Net.Facet.FacetsCollector.html">FacetsCollector</a></td>
        <td><span class="parametername">fc</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
</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/new/docs/4.8.0-beta00013/websites/apidocs/apiSpec/new?filename=Lucene_Net_Facet_Taxonomy_FastTaxonomyFacetCounts.md&amp;value=---%0Auid%3A%20Lucene.Net.Facet.Taxonomy.FastTaxonomyFacetCounts%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A" class="contribution-link">Improve this Doc</a>
                  </li>
                  <li>
                    <a href="https://github.com/apache/lucenenet/blob/fix/apidocs-layout/src/Lucene.Net.Facet/Taxonomy/FastTaxonomyFacetCounts.cs/#L33" class="contribution-link">View Source</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 The Apache Software Foundation, Licensed under the <a href='http://www.apache.org/licenses/LICENSE-2.0' target='_blank'>Apache License, Version 2.0</a><br> <small>Apache Lucene.Net, Lucene.Net, Apache, the Apache feather logo, and the Apache Lucene.Net project logo are trademarks of The Apache Software Foundation. <br>All other marks mentioned may be trademarks or registered trademarks of their respective owners.</small>
            
          </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>
