| <!DOCTYPE html> |
| <!--[if IE]><![endif]--> |
| <html> |
| |
| <head> |
| <meta charset="utf-8"> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| <title>Lucene.NET 4.8.0-beta00014 Release Notes | Apache Lucene.NET 4.8.0 </title> |
| <meta name="viewport" content="width=device-width"> |
| <meta name="title" content="Lucene.NET 4.8.0-beta00014 Release Notes | Apache Lucene.NET 4.8.0 "> |
| <meta name="generator" content="docfx 2.58.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"> |
| |
| |
| |
| |
| <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Lato:400,700%7CMerriweather%7CRoboto+Mono"> |
| <link rel="stylesheet" href="/styles/site.css"> |
| |
| </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="../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 role="main" class="container body-content hide-when-search"> |
| <div class="article row grid"> |
| <div class="col-md-10"> |
| <article class="content wrap" id="_content" data-uid="releasenotes/4.8.0-beta00014"> |
| <h1 id="lucenenet-480-beta00014-release-notes">Lucene.NET 4.8.0-beta00014 Release Notes</h1> |
| |
| <hr> |
| <blockquote> |
| <p>This release contains bug fixes and minor performance improvements</p> |
| </blockquote> |
| <h2 id="known-issues">Known Issues</h2> |
| <ul> |
| <li><p>The <code>lucene-cli</code> tool requires an <code>appsettings.json</code> file, but none was shipped. Upon running <code>lucene</code> on the command line, the following error will be presented:</p> |
| <pre><code>F:\Projects\lucenenet>lucene |
| Unhandled exception. System.IO.FileNotFoundException: The configuration file 'appsettings.json' was not found and is not optional. The physical path is 'C:\Users\shad\.dotnet\tools\.store\lucene-cli\4.8.0-beta00010\lucene-cli\4.8.0-beta00010\tools\netcoreapp3.1\any\appsettings.json'. |
| at Microsoft.Extensions.Configuration.FileConfigurationProvider.HandleException(ExceptionDispatchInfo info) |
| at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload) |
| at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load() |
| at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers) |
| at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build() |
| at Lucene.Net.Cli.Program.Main(String[] args) in D:\a\1\s\src\dotnet\tools\lucene-cli\Program.cs:line 27 |
| </code></pre> |
| <p>Adding a text file named <code>appsettings.json</code> to the location specified in the error message with opening and closing brackets will prevent the exception.</p> |
| <h4 id="appsettingsjson">appsettings.json</h4> |
| <pre><code>{ |
| } |
| </code></pre> |
| <blockquote> |
| <p>IMPORTANT: There must be at least opening and closing curly brackets in the file, or it won't be parsed as valid JSON.</p> |
| </blockquote> |
| </li> |
| </ul> |
| <h2 id="benchmarks-from-310">Benchmarks (from <a href="https://github.com/apache/lucenenet/pull/310">#310</a>)</h2> |
| <h4 id="index-files">Index Files</h4> |
| <details> |
| <summary>Click to expand</summary> |
| <pre><code class="lang-ini"> |
| BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19041.867 (2004/?/20H1) |
| Intel Core i7-8850H CPU 2.60GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores |
| .NET Core SDK=5.0.104 |
| [Host] : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00005 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00006 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00007 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00008 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00009 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00010 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00011 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00012 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00013 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00014 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| |
| InvocationCount=1 IterationCount=15 LaunchCount=2 |
| UnrollFactor=1 WarmupCount=10 |
| |
| </code></pre> |
| <table> |
| <thead> |
| <tr> |
| <th>Method</th> |
| <th>Job</th> |
| <th style="text-align: right;">Mean</th> |
| <th style="text-align: right;">Error</th> |
| <th style="text-align: right;">StdDev</th> |
| <th style="text-align: right;">Gen 0</th> |
| <th style="text-align: right;">Gen 1</th> |
| <th style="text-align: right;">Gen 2</th> |
| <th style="text-align: right;">Allocated</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>IndexFiles</td> |
| <td>4.8.0-beta00005</td> |
| <td style="text-align: right;">905.6 ms</td> |
| <td style="text-align: right;">131.82 ms</td> |
| <td style="text-align: right;">197.30 ms</td> |
| <td style="text-align: right;">43000.0000</td> |
| <td style="text-align: right;">8000.0000</td> |
| <td style="text-align: right;">7000.0000</td> |
| <td style="text-align: right;">220.99 MB</td> |
| </tr> |
| <tr> |
| <td>IndexFiles</td> |
| <td>4.8.0-beta00006</td> |
| <td style="text-align: right;">707.1 ms</td> |
| <td style="text-align: right;">18.57 ms</td> |
| <td style="text-align: right;">26.04 ms</td> |
| <td style="text-align: right;">44000.0000</td> |
| <td style="text-align: right;">8000.0000</td> |
| <td style="text-align: right;">7000.0000</td> |
| <td style="text-align: right;">220.99 MB</td> |
| </tr> |
| <tr> |
| <td>IndexFiles</td> |
| <td>4.8.0-beta00007</td> |
| <td style="text-align: right;">712.2 ms</td> |
| <td style="text-align: right;">16.45 ms</td> |
| <td style="text-align: right;">23.06 ms</td> |
| <td style="text-align: right;">44000.0000</td> |
| <td style="text-align: right;">8000.0000</td> |
| <td style="text-align: right;">7000.0000</td> |
| <td style="text-align: right;">221.04 MB</td> |
| </tr> |
| <tr> |
| <td>IndexFiles</td> |
| <td>4.8.0-beta00008</td> |
| <td style="text-align: right;">785.7 ms</td> |
| <td style="text-align: right;">17.37 ms</td> |
| <td style="text-align: right;">25.46 ms</td> |
| <td style="text-align: right;">44000.0000</td> |
| <td style="text-align: right;">8000.0000</td> |
| <td style="text-align: right;">7000.0000</td> |
| <td style="text-align: right;">221.54 MB</td> |
| </tr> |
| <tr> |
| <td>IndexFiles</td> |
| <td>4.8.0-beta00009</td> |
| <td style="text-align: right;">824.9 ms</td> |
| <td style="text-align: right;">32.86 ms</td> |
| <td style="text-align: right;">48.17 ms</td> |
| <td style="text-align: right;">44000.0000</td> |
| <td style="text-align: right;">8000.0000</td> |
| <td style="text-align: right;">7000.0000</td> |
| <td style="text-align: right;">221.34 MB</td> |
| </tr> |
| <tr> |
| <td>IndexFiles</td> |
| <td>4.8.0-beta00010</td> |
| <td style="text-align: right;">789.6 ms</td> |
| <td style="text-align: right;">16.40 ms</td> |
| <td style="text-align: right;">24.04 ms</td> |
| <td style="text-align: right;">44000.0000</td> |
| <td style="text-align: right;">8000.0000</td> |
| <td style="text-align: right;">7000.0000</td> |
| <td style="text-align: right;">221.35 MB</td> |
| </tr> |
| <tr> |
| <td>IndexFiles</td> |
| <td>4.8.0-beta00011</td> |
| <td style="text-align: right;">805.4 ms</td> |
| <td style="text-align: right;">21.26 ms</td> |
| <td style="text-align: right;">31.82 ms</td> |
| <td style="text-align: right;">44000.0000</td> |
| <td style="text-align: right;">8000.0000</td> |
| <td style="text-align: right;">7000.0000</td> |
| <td style="text-align: right;">221.37 MB</td> |
| </tr> |
| <tr> |
| <td>IndexFiles</td> |
| <td>4.8.0-beta00012</td> |
| <td style="text-align: right;">827.8 ms</td> |
| <td style="text-align: right;">13.95 ms</td> |
| <td style="text-align: right;">20.89 ms</td> |
| <td style="text-align: right;">56000.0000</td> |
| <td style="text-align: right;">7000.0000</td> |
| <td style="text-align: right;">6000.0000</td> |
| <td style="text-align: right;">287.03 MB</td> |
| </tr> |
| <tr> |
| <td>IndexFiles</td> |
| <td>4.8.0-beta00013</td> |
| <td style="text-align: right;">793.6 ms</td> |
| <td style="text-align: right;">13.63 ms</td> |
| <td style="text-align: right;">19.55 ms</td> |
| <td style="text-align: right;">44000.0000</td> |
| <td style="text-align: right;">8000.0000</td> |
| <td style="text-align: right;">7000.0000</td> |
| <td style="text-align: right;">220.22 MB</td> |
| </tr> |
| <tr> |
| <td>IndexFiles</td> |
| <td>4.8.0-beta00014</td> |
| <td style="text-align: right;">812.0 ms</td> |
| <td style="text-align: right;">21.97 ms</td> |
| <td style="text-align: right;">30.79 ms</td> |
| <td style="text-align: right;">44000.0000</td> |
| <td style="text-align: right;">8000.0000</td> |
| <td style="text-align: right;">7000.0000</td> |
| <td style="text-align: right;">220.29 MB</td> |
| </tr> |
| </tbody> |
| </table> |
| </details> |
| <h4 id="search-files">Search Files</h4> |
| <details> |
| <summary>Click to expand</summary> |
| <pre><code class="lang-ini"> |
| BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19041.867 (2004/?/20H1) |
| Intel Core i7-8850H CPU 2.60GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores |
| .NET Core SDK=5.0.104 |
| [Host] : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00005 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00006 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00007 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00008 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00009 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00010 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00011 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00012 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00013 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| 4.8.0-beta00014 : .NET Core 3.1.13 (CoreCLR 4.700.21.11102, CoreFX 4.700.21.11602), X64 RyuJIT |
| |
| IterationCount=15 LaunchCount=2 WarmupCount=10 |
| |
| </code></pre> |
| <table> |
| <thead> |
| <tr> |
| <th>Method</th> |
| <th>Job</th> |
| <th style="text-align: right;">Mean</th> |
| <th style="text-align: right;">Error</th> |
| <th style="text-align: right;">StdDev</th> |
| <th style="text-align: right;">Median</th> |
| <th style="text-align: right;">Gen 0</th> |
| <th style="text-align: right;">Gen 1</th> |
| <th style="text-align: right;">Gen 2</th> |
| <th style="text-align: right;">Allocated</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>SearchFiles</td> |
| <td>4.8.0-beta00005</td> |
| <td style="text-align: right;">421.1 ms</td> |
| <td style="text-align: right;">111.47 ms</td> |
| <td style="text-align: right;">163.38 ms</td> |
| <td style="text-align: right;">326.3 ms</td> |
| <td style="text-align: right;">18000.0000</td> |
| <td style="text-align: right;">1000.0000</td> |
| <td style="text-align: right;">-</td> |
| <td style="text-align: right;">82.11 MB</td> |
| </tr> |
| <tr> |
| <td>SearchFiles</td> |
| <td>4.8.0-beta00006</td> |
| <td style="text-align: right;">349.8 ms</td> |
| <td style="text-align: right;">24.03 ms</td> |
| <td style="text-align: right;">35.97 ms</td> |
| <td style="text-align: right;">338.9 ms</td> |
| <td style="text-align: right;">18000.0000</td> |
| <td style="text-align: right;">1000.0000</td> |
| <td style="text-align: right;">-</td> |
| <td style="text-align: right;">82.11 MB</td> |
| </tr> |
| <tr> |
| <td>SearchFiles</td> |
| <td>4.8.0-beta00007</td> |
| <td style="text-align: right;">333.6 ms</td> |
| <td style="text-align: right;">17.36 ms</td> |
| <td style="text-align: right;">25.98 ms</td> |
| <td style="text-align: right;">336.8 ms</td> |
| <td style="text-align: right;">18000.0000</td> |
| <td style="text-align: right;">1000.0000</td> |
| <td style="text-align: right;">-</td> |
| <td style="text-align: right;">81.9 MB</td> |
| </tr> |
| <tr> |
| <td>SearchFiles</td> |
| <td>4.8.0-beta00008</td> |
| <td style="text-align: right;">191.7 ms</td> |
| <td style="text-align: right;">7.17 ms</td> |
| <td style="text-align: right;">10.51 ms</td> |
| <td style="text-align: right;">187.9 ms</td> |
| <td style="text-align: right;">17000.0000</td> |
| <td style="text-align: right;">1000.0000</td> |
| <td style="text-align: right;">-</td> |
| <td style="text-align: right;">80.13 MB</td> |
| </tr> |
| <tr> |
| <td>SearchFiles</td> |
| <td>4.8.0-beta00009</td> |
| <td style="text-align: right;">186.6 ms</td> |
| <td style="text-align: right;">8.56 ms</td> |
| <td style="text-align: right;">12.55 ms</td> |
| <td style="text-align: right;">184.0 ms</td> |
| <td style="text-align: right;">17000.0000</td> |
| <td style="text-align: right;">1000.0000</td> |
| <td style="text-align: right;">-</td> |
| <td style="text-align: right;">80.13 MB</td> |
| </tr> |
| <tr> |
| <td>SearchFiles</td> |
| <td>4.8.0-beta00010</td> |
| <td style="text-align: right;">182.2 ms</td> |
| <td style="text-align: right;">6.69 ms</td> |
| <td style="text-align: right;">9.16 ms</td> |
| <td style="text-align: right;">181.6 ms</td> |
| <td style="text-align: right;">17000.0000</td> |
| <td style="text-align: right;">1000.0000</td> |
| <td style="text-align: right;">-</td> |
| <td style="text-align: right;">79.85 MB</td> |
| </tr> |
| <tr> |
| <td>SearchFiles</td> |
| <td>4.8.0-beta00011</td> |
| <td style="text-align: right;">208.9 ms</td> |
| <td style="text-align: right;">17.73 ms</td> |
| <td style="text-align: right;">26.54 ms</td> |
| <td style="text-align: right;">207.9 ms</td> |
| <td style="text-align: right;">17000.0000</td> |
| <td style="text-align: right;">1000.0000</td> |
| <td style="text-align: right;">-</td> |
| <td style="text-align: right;">79.85 MB</td> |
| </tr> |
| <tr> |
| <td>SearchFiles</td> |
| <td>4.8.0-beta00012</td> |
| <td style="text-align: right;">192.3 ms</td> |
| <td style="text-align: right;">10.99 ms</td> |
| <td style="text-align: right;">16.46 ms</td> |
| <td style="text-align: right;">187.8 ms</td> |
| <td style="text-align: right;">18000.0000</td> |
| <td style="text-align: right;">1000.0000</td> |
| <td style="text-align: right;">-</td> |
| <td style="text-align: right;">81.11 MB</td> |
| </tr> |
| <tr> |
| <td>SearchFiles</td> |
| <td>4.8.0-beta00013</td> |
| <td style="text-align: right;">177.4 ms</td> |
| <td style="text-align: right;">7.74 ms</td> |
| <td style="text-align: right;">11.59 ms</td> |
| <td style="text-align: right;">175.1 ms</td> |
| <td style="text-align: right;">14000.0000</td> |
| <td style="text-align: right;">1000.0000</td> |
| <td style="text-align: right;">-</td> |
| <td style="text-align: right;">65.78 MB</td> |
| </tr> |
| <tr> |
| <td>SearchFiles</td> |
| <td>4.8.0-beta00014</td> |
| <td style="text-align: right;">172.7 ms</td> |
| <td style="text-align: right;">5.93 ms</td> |
| <td style="text-align: right;">8.88 ms</td> |
| <td style="text-align: right;">168.9 ms</td> |
| <td style="text-align: right;">14000.0000</td> |
| <td style="text-align: right;">1000.0000</td> |
| <td style="text-align: right;">-</td> |
| <td style="text-align: right;">65.78 MB</td> |
| </tr> |
| </tbody> |
| </table> |
| </details> |
| <h2 id="change-log">Change Log</h2> |
| <h3 id="breaking-changes">Breaking Changes</h3> |
| <ul> |
| <li><a href="https://github.com/apache/lucenenet/pull/424">#424</a> - Deprecated <code>TaskMergeScheduler</code>, a merge scheduler that was added to support .NET Standard 1.x</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/424">#424</a> - <code>Lucene.Net.TestFramework</code>: Removed the public <code>LuceneTestCase.ConcurrentMergeSchedulerFactories</code> class</li> |
| </ul> |
| <h3 id="bugs">Bugs</h3> |
| <ul> |
| <li><a href="https://github.com/apache/lucenenet/pull/405">#405</a>, <a href="https://github.com/apache/lucenenet/pull/415">#415</a> - <code>Lucene.Net.Index.DocTermOrds</code>: Fixed issue with enumerator (<code>OrdWrappedTermsEnum</code>) incorrectly returning <code>true</code> when the value is <code>null</code>.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/427">#427</a> - <code>Lucene.Net.Analysis.Common</code>: Fixed <code>TestRollingCharBuffer::Test()</code> to prevent out of memory exceptions when running with <code>Verbose</code> enabled</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/434">#434</a>, <a href="https://github.com/apache/lucenenet/pull/418">#418</a> - Hunspell affixes' file parsing corrupts some affixes' conditions</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/434">#434</a>, <a href="https://github.com/apache/lucenenet/pull/419">#419</a> - <code>HunspellStemFilter</code> does not work with zero affix</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/439">#439</a> - <code>Lucene.Net.Facet.Taxonomy.CachedOrdinalsReader</code>: Fixed synchronization issue between adding new items to the cache and reading <code>RamBytesUsed</code> method</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/439">#439</a>, <a href="https://github.com/apache/lucenenet/pull/417">#417</a>, <a href="https://github.com/apache/lucenenet/pull/319">#319</a> - <code>Lucene.Net.Spatial.Util.ShapeFieldCacheProvider</code>: Fixed atomicity issue with loading the cache by using <code>Lazy<T></code>.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/441">#441</a> - <code> Lucene.Net.TestFramework.Support.Confguration.TestConfigurationFactory</code>: Use <code>Lazy<T></code> to ensure the <code>configurationCache.GetOrAdd()</code> factory is atomic.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/441">#441</a> - <code>Lucene.Net.TestFramework.Search.ShardSearchingTestBase: Fixed possible </code>KeyNotFoundException<code>when getting the value from</code>collectionStatisticsCache`</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/441">#441</a>, <a href="https://github.com/apache/lucenenet/pull/417">#417</a>, <a href="https://github.com/apache/lucenenet/pull/319">#319</a> - <code>Lucene.Net.Spatial.Prefix.PrefixTreeFactory</code>: Use <code>Lazy<T></code> in <code>ConcurrentDictionary</code> to make the <code>valueFactory</code> atomic.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/443">#443</a> - <code>Lucene.Net.Benchmark.ByTask.Feeds.SpatialDocMaker: Since </code>Dictionary<TKey, TValue>.this[key]<code>is not marked virtual in .NET, subclassing</code>Dictionary<string, string><code>is not a valid approach. So we implement</code>IDictionary<string, string>` instead.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/416">#416</a> - CLI Documentation issue - environment variable token not replaced.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/450">#450</a> - <code>Lucene.Net.Facet</code> - Reverted locking in to the state it was in Lucene 4.8.1, however we are still making use of <code>ReaderWriterLockSlim</code> to improve read performance of caches. Also, removed the 1 second lock timeout from <code>Cl2oTaxonomyWriterCache</code>.</li> |
| </ul> |
| <h3 id="improvements">Improvements</h3> |
| <ul> |
| <li><a href="https://github.com/apache/lucenenet/pull/269">#269</a> - Added <code>[AwaitsFix]</code> attribute to known failing tests</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/391">#391</a> - Improved plugins in DocFx when generating API docs</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/392">#392</a> - Enabled GitHub Actions to Run Tests on Pull Request</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/395">#395</a> - Improved performance of build pipeline by publishing the whole solution in one step instead of one project at a time</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/395">#395</a> - Fixed dependency NuGet package version conflicts</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/395">#395</a> - Added crash and hang detection to the test runs</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/395">#395</a> - Upgraded to the latest <code>dotnet</code> CLI commands <code>dotnet build</code> and <code>dotnet test</code> rather than <code>dotnet msbuild</code> and <code>dotnet vstest</code></li> |
| <li><a href="https://github.com/apache/lucenenet/pull/411">#411</a>, <a href="https://github.com/apache/lucenenet/pull/259">#259</a> - Reviewed tests for <code>Lucene.Net.Tests.Facet</code></li> |
| <li><a href="https://github.com/apache/lucenenet/pull/412">#412</a>, <a href="https://github.com/apache/lucenenet/pull/406">#406</a> - Upgraded NUnit to 3.13.1 and NUnit3TestAdapter to 3.17.0 to make <code>Console.WriteLine()</code> work in unit tests.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/414">#414</a>, <a href="https://github.com/apache/lucenenet/pull/259">#259</a> - Review of tests for <code>Lucene.Net.Tests.Join</code></li> |
| <li><a href="https://github.com/apache/lucenenet/pull/420">#420</a>, <a href="https://github.com/apache/lucenenet/pull/259">#259</a> - Review of tests for <code>Lucene.Net.Tests.Classification</code></li> |
| <li><a href="https://github.com/apache/lucenenet/pull/422">#422</a> - <code>Lucene.Net.Classification</code>: Removed leading underscore from private/internal member variables</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/423">#423</a> - Reduced casting</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/423">#423</a> - <code>azure-pipelines.yml</code>: Added <code>RunX86Tests</code> option to explicitly enable x86 tests without having to run a full nightly build</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/425">#425</a>, <a href="https://github.com/apache/lucenenet/pull/259">#259</a> - Review of tests for <code>Lucene.Net.Tests.Codecs</code></li> |
| <li><a href="https://github.com/apache/lucenenet/pull/426">#426</a> - Changed multiple naming conventions of anonymous classes to just use the suffix <code>AnonymousClass</code></li> |
| <li><a href="https://github.com/apache/lucenenet/pull/426">#426</a> - Changed accessibility of anonymous classes to <code>private</code></li> |
| <li><a href="https://github.com/apache/lucenenet/pull/427">#427</a>, <a href="https://github.com/apache/lucenenet/pull/259">#259</a> - Review of tests for <code>Lucene.Net.Tests.Queries</code></li> |
| <li><a href="https://github.com/apache/lucenenet/pull/433">#433</a>, <a href="https://github.com/apache/lucenenet/pull/430">#430</a> - Removed <code>FEATURE_CLONEABLE</code> and the MSBuild property <code>IncludeICloneable</code></li> |
| <li><a href="https://github.com/apache/lucenenet/pull/435">#435</a>, <a href="https://github.com/apache/lucenenet/pull/259">#259</a> - Review of tests for <code>Lucene.Net.Tests.Expressions</code></li> |
| <li><a href="https://github.com/apache/lucenenet/pull/438">#438</a> - Don't insert extra newline in TFIDFSim's score explanation (this minor change had already been done to Lucene 5.0, so we are back-porting it to 4.8.0)</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/439">#439</a> - <code>Lucene.Net.Util.VirtualMethod</code>: Removed unnecessary call to <code>Convert.ToInt32()</code></li> |
| <li><a href="https://github.com/apache/lucenenet/pull/439">#439</a> - <code>Lucene.Net.Util.AttributeSource</code>: Restored comment from Lucene indicating it doesn't matter if multiple threads compete to populate the <code>ConditionalWeakTable</code>.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/440">#440</a> - <strong>SWEEP</strong>: Reviewed catch blocks and made improvements to preserve stack details.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/441">#441</a>, <a href="https://github.com/apache/lucenenet/pull/417">#417</a> - <code>Lucene.Net.Analysis.OpenNLP.Tools.OpenNLPOpsFactory</code>: Simplified logic by using <code>GetOrAdd()</code> instead of <code>TryGetValue</code>.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/441">#441</a> - <code> Lucene.Net.TestFramework.Util</code> (<code>LuceneTestCase</code> + <code>TestUtil</code>): Refactored the <code>CleanupTemporaryFiles()</code> method to be more in line with the original Java implementation, including not allowing new files/directories to be added to the queue concurrently with the deletion process.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/441">#441</a> - <strong>PERFORMANCE:</strong> <code> Lucene.Net.Join.ToParentBlockJoinCollector</code>: Changed from <code>ConcurrentQueue<T></code> to <code>Queue<T></code> because we are dealing with a collection declared within the same method so there is no reason for the extra overhead.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/441">#441</a> - <strong>PERFORMANCE:</strong> <code> Lucene.Net.Tests.Suggest.Spell.TestSpellChecker</code>: Replaced <code>ConcurrentBag<T></code> with ConcurrentQueue<t> because we need to be sure the underlying implementation guarantees order and the extra call to <code>Reverse()</code> was just slowing things down.</t></li> |
| <li><a href="https://github.com/apache/lucenenet/pull/441">#441</a> - <code> Lucene.Net.TestFramework.Search.ShardSearchingTestBase</code>: Display the contents of the collection to the console using <code>Collections.ToString()</code>.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/441">#441</a> - <code>Lucene.Net.Search.SearcherLifetimeManager: Added comment to indicate the reason we use</code>Lazy<t>` is to make the create operation atomic.</t></li> |
| <li><a href="https://github.com/apache/lucenenet/pull/441">#441</a> - <code> Directory.Build.Targets</code>: Added <code>FEATURE_DICTIONARY_REMOVE_CONTINUEENUMERATION</code> so we can support this feature in .NET 5.x + when we add a target.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/442">#442</a> - <strong>PERFORMANCE:</strong> <code>Lucene.Net.Search.Suggest.Fst.FSTCompletion</code>: Use <code>Stack<T></code> rather than <code>List<T>.Reverse()</code>. Also, removed unnecessary lock in <code>CheckExistingAndReorder()</code>, as it is only used in a single thread at a time.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/442">#442</a> - <strong>PERFORMANCE:</strong> <code>Lucene.Net.Search.Suggest.SortedInputEnumerator</code>: Removed unnecessary call to <code>Reverse()</code> and allocation of <code>HashSet<T></code></li> |
| <li><a href="https://github.com/apache/lucenenet/pull/444">#444</a>, <a href="https://github.com/apache/lucenenet/pull/272">#272</a> - <strong>PERFORMANCE:</strong> <code>Lucene.Net.Search.FieldCacheImpl</code>: Reverted locking back to the state of Lucene 4.8.0.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/445">#445</a> - Removed <code>FEATURE_THREAD_INTERRUPT</code> since all supported targets now support thread interrupts. Note also that Lucene <em>depends</em> on thread interrupts to function properly, so disabling this feature would be invalid.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/448">#448</a> - <strong>DOCS:</strong> Added migration guide for users migrating from Lucene.NET 3.0.3 to Lucene.NET 4.8.0.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/396">#396</a> - <strong>DOCS:</strong> Create branching scheme to track changes in docuentation between different Lucene versions and removed the <code>JavaDocToMarkdownConverter</code> tool from the normal build workflow of the API docs. This frees us up to update the "namespace" documentation with .NET-specific information and code examples.</li> |
| <li>Upgraded J2N NuGet package dependency to 2.0.0-beta-0012</li> |
| <li>Upgraded ICU4N NuGet package dependency to 60.1.0-alpha.254</li> |
| <li>Upgraded Morfologik.Stemming package dependency to 2.1.7-beta-0002</li> |
| </ul> |
| <h3 id="new-features">New Features</h3> |
| <ul> |
| <li><a href="https://github.com/apache/lucenenet/pull/385">#385</a>, <a href="https://github.com/apache/lucenenet/pull/362">#362</a> - <code>Lucene.Net.Documents.Document</code>: Added culture-sensitive overloads of <code>GetValues()</code>, <code>Get()</code> and <code>GetStringValue()</code> that accept <code>format</code> and <code>IFormatProvider</code> and implemented <code>IFormattable</code> on <code>Document</code> and <code>LazyDocument</code>.</li> |
| <li><a href="https://github.com/apache/lucenenet/pull/404">#404</a> - Added <code>Commit()</code> method to <code>AnalyzingInfixSuggester</code> (from <a href="https://issues.apache.org/jira/browse/LUCENE-5889">LUCENE-5889</a>)</li> |
| </ul> |
| </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/master/websites/site/release-notes/version-4.8.0-beta00014.md/#L1" class="contribution-link">Improve this Doc</a> |
| </li> |
| </ul> |
| </div> |
| <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix"> |
| <h5>In This Article</h5> |
| <div></div> |
| </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 © 2022 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="../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> |