| <!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.Analysis.Icu |
| | Apache Lucene.NET 4.8.0-beta00013 Documentation </title> |
| <meta name="viewport" content="width=device-width"> |
| <meta name="title" content="Namespace Lucene.Net.Analysis.Icu |
| | 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="icu/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.Analysis.Icu"> |
| |
| <h1 id="Lucene_Net_Analysis_Icu" data-uid="Lucene.Net.Analysis.Icu" class="text-break">Namespace Lucene.Net.Analysis.Icu |
| </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. |
| --> |
| <!-- :Post-Release-Update-Version.LUCENE_XY: - several mentions in this file --> |
| <p>This module exposes functionality from |
| <a href="http://site.icu-project.org/">ICU</a> to Apache Lucene. ICU4J is a Java |
| library that enhances Java's internationalization support by improving |
| performance, keeping current with the Unicode Standard, and providing richer |
| APIs. </p> |
| <p>For an introduction to Lucene's analysis API, see the <xref:Lucene.Net.Analysis> package documentation.</p> |
| <p> This module exposes the following functionality: </p> |
| <ul> |
| <li><p><a href="#segmentation">Text Segmentation</a>: Tokenizes text based on |
| properties and rules defined in Unicode.</p> |
| </li> |
| <li><p><a href="#collation">Collation</a>: Compare strings according to the |
| conventions and standards of a particular language, region or country.</p> |
| </li> |
| <li><p><a href="#normalization">Normalization</a>: Converts text to a unique, |
| equivalent form.</p> |
| </li> |
| <li><p><a href="#casefolding">Case Folding</a>: Removes case distinctions with |
| Unicode's Default Caseless Matching algorithm.</p> |
| </li> |
| <li><p><a href="#searchfolding">Search Term Folding</a>: Removes distinctions |
| (such as accent marks) between similar characters for a loose or fuzzy search.</p> |
| </li> |
| <li><p><a href="#transform">Text Transformation</a>: Transforms Unicode text in |
| a context-sensitive fashion: e.g. mapping Traditional to Simplified Chinese</p> |
| </li> |
| </ul> |
| <hr> |
| <h1 id="text-segmentation"><a href="">Text Segmentation</a></h1> |
| <p> Text Segmentation (Tokenization) divides document and query text into index terms (typically words). Unicode provides special properties and rules so that this can be done in a manner that works well with most languages. </p> |
| <p> Text Segmentation implements the word segmentation specified in <a href="http://unicode.org/reports/tr29/">Unicode Text Segmentation</a>. Additionally the algorithm can be tailored based on writing system, for example text in the Thai script is automatically delegated to a dictionary-based segmentation algorithm. </p> |
| <h2 id="use-cases">Use Cases</h2> |
| <ul> |
| <li>As a more thorough replacement for StandardTokenizer that works well for |
| most languages. </li> |
| </ul> |
| <h2 id="example-usages">Example Usages</h2> |
| <h3 id="tokenizing-multilanguage-text">Tokenizing multilanguage text</h3> |
| <pre><code> /** |
| * This tokenizer will work well in general for most languages. |
| */ |
| Tokenizer tokenizer = new ICUTokenizer(reader); |
| </code></pre><hr> |
| <h1 id="collation"><a href="">Collation</a></h1> |
| <p> <code>ICUCollationKeyAnalyzer</code> converts each token into its binary <code>CollationKey</code> using the provided <code>Collator</code>, allowing it to be stored as an index term. </p> |
| <p> <code>ICUCollationKeyAnalyzer</code> depends on ICU4J to produce the <code>CollationKey</code>s. </p> |
| <h2 id="use-cases-1">Use Cases</h2> |
| <ul> |
| <li><p>Efficient sorting of terms in languages that use non-Unicode character |
| orderings. (Lucene Sort using a Locale can be very slow.) </p> |
| </li> |
| <li><p>Efficient range queries over fields that contain terms in languages that |
| use non-Unicode character orderings. (Range queries using a Locale can be |
| very slow.)</p> |
| </li> |
| <li><p>Effective Locale-specific normalization (case differences, diacritics, etc.). |
| (<xref:Lucene.Net.Analysis.Core.LowerCaseFilter> and |
| <xref:Lucene.Net.Analysis.Miscellaneous.ASCIIFoldingFilter> provide these services |
| in a generic way that doesn't take into account locale-specific needs.)</p> |
| </li> |
| </ul> |
| <h2 id="example-usages-1">Example Usages</h2> |
| <h3 id="farsi-range-queries">Farsi Range Queries</h3> |
| <pre><code> Collator collator = Collator.getInstance(new ULocale("ar")); |
| ICUCollationKeyAnalyzer analyzer = new ICUCollationKeyAnalyzer(Version.LUCENE_48, collator); |
| RAMDirectory ramDir = new RAMDirectory(); |
| IndexWriter writer = new IndexWriter(ramDir, new IndexWriterConfig(Version.LUCENE_48, analyzer)); |
| Document doc = new Document(); |
| doc.add(new Field("content", "\u0633\u0627\u0628", |
| Field.Store.YES, Field.Index.ANALYZED)); |
| writer.addDocument(doc); |
| writer.close(); |
| IndexSearcher is = new IndexSearcher(ramDir, true); |
| </code></pre><p> QueryParser aqp = new QueryParser(Version.LUCENE_48, "content", analyzer); |
| aqp.setAnalyzeRangeTerms(true);</p> |
| <pre><code> // Unicode order would include U+0633 in [ U+062F - U+0698 ], but Farsi |
| // orders the U+0698 character before the U+0633 character, so the single |
| // indexed Term above should NOT be returned by a ConstantScoreRangeQuery |
| // with a Farsi Collator (or an Arabic one for the case when Farsi is not |
| // supported). |
| ScoreDoc[] result |
| = is.search(aqp.parse("[ \u062F TO \u0698 ]"), null, 1000).scoreDocs; |
| assertEquals("The index Term should not be included.", 0, result.length); |
| </code></pre><h3 id="danish-sorting">Danish Sorting</h3> |
| <pre><code> Analyzer analyzer |
| = new ICUCollationKeyAnalyzer(Version.LUCENE_48, Collator.getInstance(new ULocale("da", "dk"))); |
| RAMDirectory indexStore = new RAMDirectory(); |
| IndexWriter writer = new IndexWriter(indexStore, new IndexWriterConfig(Version.LUCENE_48, analyzer)); |
| String[] tracer = new String[] { "A", "B", "C", "D", "E" }; |
| String[] data = new String[] { "HAT", "HUT", "H\u00C5T", "H\u00D8T", "HOT" }; |
| String[] sortedTracerOrder = new String[] { "A", "E", "B", "D", "C" }; |
| for (int i = 0 ; i < data.length="" ;="" ++i)="" {="" document="" doc="new" document();="" doc.add(new="" field("tracer",="" tracer[i],="" field.store.yes,="" field.index.no));="" doc.add(new="" field("contents",="" data[i],="" field.store.no,="" field.index.analyzed));="" writer.adddocument(doc);="" }="" writer.close();="" indexsearcher="" searcher="new" indexsearcher(indexstore,="" true);="" sort="" sort="new" sort();="" sort.setsort(new="" sortfield("contents",="" sortfield.string));="" query="" query="new" matchalldocsquery();="" scoredoc[]="" result="searcher.search(query," null,="" 1000,="" sort).scoredocs;="" for="" (int="" i="0" ;="" i="">< result.length="" ;="" ++i)="" {="" document="" doc="searcher.doc(result[i].doc);" assertequals(sortedtracerorder[i],="" doc.getvalues("tracer")[0]);="" }=""> |
| </code></pre><h3 id="turkish-case-normalization">Turkish Case Normalization</h3> |
| <pre><code> Collator collator = Collator.getInstance(new ULocale("tr", "TR")); |
| collator.setStrength(Collator.PRIMARY); |
| Analyzer analyzer = new ICUCollationKeyAnalyzer(Version.LUCENE_48, collator); |
| RAMDirectory ramDir = new RAMDirectory(); |
| IndexWriter writer = new IndexWriter(ramDir, new IndexWriterConfig(Version.LUCENE_48, analyzer)); |
| Document doc = new Document(); |
| doc.add(new Field("contents", "DIGY", Field.Store.NO, Field.Index.ANALYZED)); |
| writer.addDocument(doc); |
| writer.close(); |
| IndexSearcher is = new IndexSearcher(ramDir, true); |
| QueryParser parser = new QueryParser(Version.LUCENE_48, "contents", analyzer); |
| Query query = parser.parse("d\u0131gy"); // U+0131: dotless i |
| ScoreDoc[] result = is.search(query, null, 1000).scoreDocs; |
| assertEquals("The index Term should be included.", 1, result.length); |
| </code></pre><h2 id="caveats-and-comparisons">Caveats and Comparisons</h2> |
| <p> <strong>WARNING:</strong> Make sure you use exactly the same <code>Collator</code> at index and query time -- <code>CollationKey</code>s are only comparable when produced by the same <code>Collator</code>. Since {@link java.text.RuleBasedCollator}s are not independently versioned, it is unsafe to search against stored <code>CollationKey</code>s unless the following are exactly the same (best practice is to store this information with the index and check that they remain the same at query time): </p> |
| <ol> |
| <li><p>JVM vendor</p> |
| </li> |
| <li><p>JVM version, including patch version</p> |
| </li> |
| <li><p>The language (and country and variant, if specified) of the Locale |
| used when constructing the collator via |
| {@link java.text.Collator#getInstance(java.util.Locale)}.</p> |
| </li> |
| <li><p>The collation strength used - see {@link java.text.Collator#setStrength(int)}</p> |
| <p><code>ICUCollationKeyAnalyzer</code> uses ICU4J's <code>Collator</code>, which makes its version available, thus allowing collation to be versioned independently from the JVM. <code>ICUCollationKeyAnalyzer</code> is also significantly faster and generates significantly shorter keys than <code>CollationKeyAnalyzer</code>. See <a href="http://site.icu-project.org/charts/collation-icu4j-sun">http://site.icu-project.org/charts/collation-icu4j-sun</a> for key generation timing and key length comparisons between ICU4J and <code>java.text.Collator</code> over several languages. </p> |
| <p><code>CollationKey</code>s generated by <code>java.text.Collator</code>s are not compatible with those those generated by ICU Collators. Specifically, if you use <code>CollationKeyAnalyzer</code> to generate index terms, do not use <code>ICUCollationKeyAnalyzer</code> on the query side, or vice versa. </p> |
| </li> |
| </ol> |
| <hr> |
| <h1 id="normalization"><a href="">Normalization</a></h1> |
| <p> <code>ICUNormalizer2Filter</code> normalizes term text to a <a href="http://unicode.org/reports/tr15/">Unicode Normalization Form</a>, so that <a href="http://en.wikipedia.org/wiki/Unicode_equivalence">equivalent</a> forms are standardized to a unique form. </p> |
| <h2 id="use-cases-2">Use Cases</h2> |
| <ul> |
| <li><p>Removing differences in width for Asian-language text. </p> |
| </li> |
| <li><p>Standardizing complex text with non-spacing marks so that characters are |
| ordered consistently.</p> |
| </li> |
| </ul> |
| <h2 id="example-usages-2">Example Usages</h2> |
| <h3 id="normalizing-text-to-nfc">Normalizing text to NFC</h3> |
| <pre><code> /** |
| * Normalizer2 objects are unmodifiable and immutable. |
| */ |
| Normalizer2 normalizer = Normalizer2.getInstance(null, "nfc", Normalizer2.Mode.COMPOSE); |
| /** |
| * This filter will normalize to NFC. |
| */ |
| TokenStream tokenstream = new ICUNormalizer2Filter(tokenizer, normalizer); |
| </code></pre><hr> |
| <h1 id="case-folding"><a href="">Case Folding</a></h1> |
| <p> Default caseless matching, or case-folding is more than just conversion to lowercase. For example, it handles cases such as the Greek sigma, so that "Μάϊος" and "ΜΆΪΟΣ" will match correctly. </p> |
| <p> Case-folding is still only an approximation of the language-specific rules governing case. If the specific language is known, consider using ICUCollationKeyFilter and indexing collation keys instead. This implementation performs the "full" case-folding specified in the Unicode standard, and this may change the length of the term. For example, the German ß is case-folded to the string 'ss'. </p> |
| <p> Case folding is related to normalization, and as such is coupled with it in this integration. To perform case-folding, you use normalization with the form "nfkc_cf" (which is the default). </p> |
| <h2 id="use-cases-3">Use Cases</h2> |
| <ul> |
| <li>As a more thorough replacement for LowerCaseFilter that has good behavior |
| for most languages.</li> |
| </ul> |
| <h2 id="example-usages-3">Example Usages</h2> |
| <h3 id="lowercasing-text">Lowercasing text</h3> |
| <pre><code> /** |
| * This filter will case-fold and normalize to NFKC. |
| */ |
| TokenStream tokenstream = new ICUNormalizer2Filter(tokenizer); |
| </code></pre><hr> |
| <h1 id="search-term-folding"><a href="">Search Term Folding</a></h1> |
| <p> Search term folding removes distinctions (such as accent marks) between similar characters. It is useful for a fuzzy or loose search. </p> |
| <p> Search term folding implements many of the foldings specified in <a href="http://www.unicode.org/reports/tr30/tr30-4.html">Character Foldings</a> as a special normalization form. This folding applies NFKC, Case Folding, and many character foldings recursively. </p> |
| <h2 id="use-cases-4">Use Cases</h2> |
| <ul> |
| <li>As a more thorough replacement for ASCIIFoldingFilter and LowerCaseFilter |
| that applies the same ideas to many more languages. </li> |
| </ul> |
| <h2 id="example-usages-4">Example Usages</h2> |
| <h3 id="removing-accents">Removing accents</h3> |
| <pre><code> /** |
| * This filter will case-fold, remove accents and other distinctions, and |
| * normalize to NFKC. |
| */ |
| TokenStream tokenstream = new ICUFoldingFilter(tokenizer); |
| </code></pre><hr> |
| <h1 id="text-transformation"><a href="">Text Transformation</a></h1> |
| <p> ICU provides text-transformation functionality via its Transliteration API. This allows you to transform text in a variety of ways, taking context into account. </p> |
| <p> For more information, see the <a href="http://userguide.icu-project.org/transforms/general">User's Guide</a> and <a href="http://userguide.icu-project.org/transforms/general/rules">Rule Tutorial</a>. </p> |
| <h2 id="use-cases-5">Use Cases</h2> |
| <ul> |
| <li><p>Convert Traditional to Simplified </p> |
| </li> |
| <li><p>Transliterate between different writing systems: e.g. Romanization</p> |
| </li> |
| </ul> |
| <h2 id="example-usages-5">Example Usages</h2> |
| <h3 id="convert-traditional-to-simplified">Convert Traditional to Simplified</h3> |
| <pre><code> /** |
| * This filter will map Traditional Chinese to Simplified Chinese |
| */ |
| TokenStream tokenstream = new ICUTransformFilter(tokenizer, Transliterator.getInstance("Traditional-Simplified")); |
| </code></pre><h3 id="transliterate-serbian-cyrillic-to-serbian-latin">Transliterate Serbian Cyrillic to Serbian Latin</h3> |
| <pre><code> /** |
| * This filter will map Serbian Cyrillic to Serbian Latin according to BGN rules |
| */ |
| TokenStream tokenstream = new ICUTransformFilter(tokenizer, Transliterator.getInstance("Serbian-Latin/BGN")); |
| </code></pre><hr> |
| <h1 id="backwards-compatibility"><a href="">Backwards Compatibility</a></h1> |
| <p> This module exists to provide up-to-date Unicode functionality that supports the most recent version of Unicode (currently 6.3). However, some users who wish for stronger backwards compatibility can restrict <a class="xref" href="Lucene.Net.Analysis.Icu.ICUNormalizer2Filter.html">ICUNormalizer2Filter</a> to operate on only a specific Unicode Version by using a {@link com.ibm.icu.text.FilteredNormalizer2}. </p> |
| <h2 id="example-usages-6">Example Usages</h2> |
| <h3 id="restricting-normalization-to-unicode-50">Restricting normalization to Unicode 5.0</h3> |
| <pre><code> /** |
| * This filter will do NFC normalization, but will ignore any characters that |
| * did not exist as of Unicode 5.0. Because of the normalization stability policy |
| * of Unicode, this is an easy way to force normalization to a specific version. |
| */ |
| Normalizer2 normalizer = Normalizer2.getInstance(null, "nfc", Normalizer2.Mode.COMPOSE); |
| UnicodeSet set = new UnicodeSet("[:age=5.0:]"); |
| // see FilteredNormalizer2 docs, the set should be frozen or performance will suffer |
| set.freeze(); |
| FilteredNormalizer2 unicode50 = new FilteredNormalizer2(normalizer, set); |
| TokenStream tokenstream = new ICUNormalizer2Filter(tokenizer, unicode50); |
| </code></pre></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.Analysis.Icu.ICUFoldingFilter.html">ICUFoldingFilter</a></h4> |
| <section><p>A <span class="xref">Lucene.Net.Analysis.TokenFilter</span> that applies search term folding to Unicode text, |
| applying foldings from UTR#30 Character Foldings.</p> |
| </section> |
| <h4><a class="xref" href="Lucene.Net.Analysis.Icu.ICUFoldingFilterFactory.html">ICUFoldingFilterFactory</a></h4> |
| <section><p>Factory for <a class="xref" href="Lucene.Net.Analysis.Icu.ICUFoldingFilter.html">ICUFoldingFilter</a>.</p> |
| </section> |
| <h4><a class="xref" href="Lucene.Net.Analysis.Icu.ICUNormalizer2CharFilter.html">ICUNormalizer2CharFilter</a></h4> |
| <section><p>Normalize token text with ICU's <span class="xref">ICU4N.Text.Normalizer2</span>.</p> |
| </section> |
| <h4><a class="xref" href="Lucene.Net.Analysis.Icu.ICUNormalizer2CharFilterFactory.html">ICUNormalizer2CharFilterFactory</a></h4> |
| <section><p>Factory for <a class="xref" href="Lucene.Net.Analysis.Icu.ICUNormalizer2CharFilter.html">ICUNormalizer2CharFilter</a>.</p> |
| </section> |
| <h4><a class="xref" href="Lucene.Net.Analysis.Icu.ICUNormalizer2Filter.html">ICUNormalizer2Filter</a></h4> |
| <section><p>Normalize token text with ICU's <span class="xref">ICU4N.Text.Normalizer2</span>.</p> |
| </section> |
| <h4><a class="xref" href="Lucene.Net.Analysis.Icu.ICUNormalizer2FilterFactory.html">ICUNormalizer2FilterFactory</a></h4> |
| <section><p>Factory for <a class="xref" href="Lucene.Net.Analysis.Icu.ICUNormalizer2Filter.html">ICUNormalizer2Filter</a>.</p> |
| </section> |
| <h4><a class="xref" href="Lucene.Net.Analysis.Icu.ICUTransformFilter.html">ICUTransformFilter</a></h4> |
| <section><p>A <span class="xref">Lucene.Net.Analysis.TokenFilter</span> that transforms text with ICU.</p> |
| </section> |
| <h4><a class="xref" href="Lucene.Net.Analysis.Icu.ICUTransformFilterFactory.html">ICUTransformFilterFactory</a></h4> |
| <section><p>Factory for <a class="xref" href="Lucene.Net.Analysis.Icu.ICUTransformFilter.html">ICUTransformFilter</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-beta00013/src/Lucene.Net.Analysis.ICU/overview.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 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> |