blob: 922b98fd3c8b87216d1c5107711ad317abb73d41 [file] [log] [blame]
<!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.Facet.Taxonomy.Directory
| Apache Lucene.NET 4.8.0-beta00010 Documentation </title>
<meta name="viewport" content="width=device-width">
<meta name="title" content="Namespace Lucene.Net.Facet.Taxonomy.Directory
| 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="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">
<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.Directory">
<h1 id="Lucene_Net_Facet_Taxonomy_Directory" data-uid="Lucene.Net.Facet.Taxonomy.Directory" class="text-break">Namespace Lucene.Net.Facet.Taxonomy.Directory
</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>Taxonomy index implementation using on top of a Directory.</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.Facet.Taxonomy.Directory.DirectoryTaxonomyReader.html">DirectoryTaxonomyReader</a></h4>
<section><p>A <a class="xref" href="Lucene.Net.Facet.Taxonomy.TaxonomyReader.html">TaxonomyReader</a> which retrieves stored taxonomy information from a
<span class="xref">Lucene.Net.Store.Directory</span>.
<p>
Reading from the on-disk index on every method call is too slow, so this
implementation employs caching: Some methods cache recent requests and their
results, while other methods prefetch all the data into memory and then
provide answers directly from in-memory tables. See the documentation of
individual methods for comments on their performance.</p>
<div class="lucene-block lucene-experimental">This is a Lucene.NET EXPERIMENTAL API, use at your own risk</div></section>
<h4><a class="xref" href="Lucene.Net.Facet.Taxonomy.Directory.DirectoryTaxonomyWriter.html">DirectoryTaxonomyWriter</a></h4>
<section><p><a class="xref" href="Lucene.Net.Facet.Taxonomy.ITaxonomyWriter.html">ITaxonomyWriter</a> which uses a <span class="xref">Lucene.Net.Store.Directory</span> to store the taxonomy
information on disk, and keeps an additional in-memory cache of some or all
categories.
<p>
In addition to the permanently-stored information in the <span class="xref">Lucene.Net.Store.Directory</span>,
efficiency dictates that we also keep an in-memory cache of <strong>recently
seen</strong> or <strong>all</strong> categories, so that we do not need to go back to disk
for every category addition to see which ordinal this category already has,
if any. A <a class="xref" href="Lucene.Net.Facet.Taxonomy.WriterCache.ITaxonomyWriterCache.html">ITaxonomyWriterCache</a> object determines the specific caching
algorithm used.
</p>
<p>
This class offers some hooks for extending classes to control the
<span class="xref">Lucene.Net.Index.IndexWriter</span> instance that is used. See <a class="xref" href="Lucene.Net.Facet.Taxonomy.Directory.DirectoryTaxonomyWriter.html#Lucene_Net_Facet_Taxonomy_Directory_DirectoryTaxonomyWriter_OpenIndexWriter_Lucene_Net_Store_Directory_Lucene_Net_Index_IndexWriterConfig_">OpenIndexWriter(Directory, IndexWriterConfig)</a>.</p>
<div class="lucene-block lucene-experimental">This is a Lucene.NET EXPERIMENTAL API, use at your own risk</div><p>
</section>
<h4><a class="xref" href="Lucene.Net.Facet.Taxonomy.Directory.DirectoryTaxonomyWriter.DiskOrdinalMap.html">DirectoryTaxonomyWriter.DiskOrdinalMap</a></h4>
<section><p><a class="xref" href="Lucene.Net.Facet.Taxonomy.Directory.DirectoryTaxonomyWriter.IOrdinalMap.html">DirectoryTaxonomyWriter.IOrdinalMap</a> maintained on file system</p>
</section>
<h4><a class="xref" href="Lucene.Net.Facet.Taxonomy.Directory.DirectoryTaxonomyWriter.MemoryOrdinalMap.html">DirectoryTaxonomyWriter.MemoryOrdinalMap</a></h4>
<section><p><a class="xref" href="Lucene.Net.Facet.Taxonomy.Directory.DirectoryTaxonomyWriter.IOrdinalMap.html">DirectoryTaxonomyWriter.IOrdinalMap</a> maintained in memory</p>
</section>
<h3 id="interfaces">Interfaces
</h3>
<h4><a class="xref" href="Lucene.Net.Facet.Taxonomy.Directory.DirectoryTaxonomyWriter.IOrdinalMap.html">DirectoryTaxonomyWriter.IOrdinalMap</a></h4>
<section><p>Mapping from old ordinal to new ordinals, used when merging indexes
wit separate taxonomies.
<p>
<a class="xref" href="Lucene.Net.Facet.Taxonomy.Directory.DirectoryTaxonomyWriter.IOrdinalMap.html#Lucene_Net_Facet_Taxonomy_Directory_DirectoryTaxonomyWriter_IOrdinalMap_AddMapping_System_Int32_System_Int32_">AddMapping(Int32, Int32)</a> merges one or more taxonomies into the given taxonomy
(this). An <a class="xref" href="Lucene.Net.Facet.Taxonomy.Directory.DirectoryTaxonomyWriter.IOrdinalMap.html">DirectoryTaxonomyWriter.IOrdinalMap</a> is filled for each of the added taxonomies,
containing the new ordinal (in the merged taxonomy) of each of the
categories in the old taxonomy.
<p><br>There exist two implementations of <a class="xref" href="Lucene.Net.Facet.Taxonomy.Directory.DirectoryTaxonomyWriter.IOrdinalMap.html">DirectoryTaxonomyWriter.IOrdinalMap</a>: <a class="xref" href="Lucene.Net.Facet.Taxonomy.Directory.DirectoryTaxonomyWriter.MemoryOrdinalMap.html">DirectoryTaxonomyWriter.MemoryOrdinalMap</a> and
<a class="xref" href="Lucene.Net.Facet.Taxonomy.Directory.DirectoryTaxonomyWriter.DiskOrdinalMap.html">DirectoryTaxonomyWriter.DiskOrdinalMap</a>. As their names suggest, the former keeps the map in
memory and the latter in a temporary disk file. Because these maps will
later be needed one by one (to remap the counting lists), not all at the
same time, it is recommended to put the first taxonomy&apos;s map in memory,
and all the rest on disk (later to be automatically read into memory one
by one, when needed).</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.Facet/Taxonomy/Directory/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>