You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jp...@apache.org on 2013/10/02 19:09:54 UTC

svn commit: r3183 [4/5] - in /release/lucene/java/4.5.0: ./ changes/

Added: release/lucene/java/4.5.0/changes/Changes.html
==============================================================================
--- release/lucene/java/4.5.0/changes/Changes.html (added)
+++ release/lucene/java/4.5.0/changes/Changes.html Wed Oct  2 17:09:34 2013
@@ -0,0 +1,9866 @@
+<!--
+**********************************************************
+** WARNING: This file is generated from CHANGES.txt by the 
+**          Perl script 'changes2html.pl'.
+**          Do *not* edit this file!
+**********************************************************
+          
+****************************************************************************
+* 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.
+****************************************************************************
+-->
+<html>
+<head>
+  <title>Lucene Change Log</title>
+  <link rel="stylesheet" href="ChangesFancyStyle.css" title="Fancy">
+  <link rel="alternate stylesheet" href="ChangesSimpleStyle.css" title="Simple">
+  <link rel="alternate stylesheet" href="ChangesFixedWidthStyle.css" title="Fixed Width">
+  <META http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+  <SCRIPT>
+    function toggleList(id) {
+      listStyle = document.getElementById(id + '.list').style;
+      anchor = document.getElementById(id);
+      if (listStyle.display == 'none') {
+        listStyle.display = 'block';
+        anchor.title = 'Click to collapse';
+        location.href = '#' + id;
+      } else {
+        listStyle.display = 'none';
+        anchor.title = 'Click to expand';
+      }
+      var expandButton = document.getElementById('expand.button');
+      expandButton.disabled = false;
+      var collapseButton = document.getElementById('collapse.button');
+      collapseButton.disabled = false;
+    }
+
+    function collapseAll() {
+      var unorderedLists = document.getElementsByTagName("ul");
+      for (var i = 0; i < unorderedLists.length; i++) {
+        if (unorderedLists[i].className != 'bulleted-list')
+          unorderedLists[i].style.display = "none";
+        else
+          unorderedLists[i].style.display = "block";
+      }
+      var orderedLists = document.getElementsByTagName("ol");
+      for (var i = 0; i < orderedLists.length; i++)
+        orderedLists[i].style.display = "none"; 
+      var anchors = document.getElementsByTagName("a");
+      for (var i = 0 ; i < anchors.length; i++) {
+        if (anchors[i].id != '')
+          anchors[i].title = 'Click to expand';
+      }
+      var collapseButton = document.getElementById('collapse.button');
+      collapseButton.disabled = true;
+      var expandButton = document.getElementById('expand.button');
+      expandButton.disabled = false;
+    }
+
+    function expandAll() {
+      var unorderedLists = document.getElementsByTagName("ul");
+      for (var i = 0; i < unorderedLists.length; i++)
+        unorderedLists[i].style.display = "block";
+      var orderedLists = document.getElementsByTagName("ol");
+      for (var i = 0; i < orderedLists.length; i++)
+        orderedLists[i].style.display = "block"; 
+      var anchors = document.getElementsByTagName("a");
+      for (var i = 0 ; i < anchors.length; i++) {
+        if (anchors[i].id != '')
+          anchors[i].title = 'Click to collapse';
+      }
+      var expandButton = document.getElementById('expand.button');
+      expandButton.disabled = true;
+      var collapseButton = document.getElementById('collapse.button');
+      collapseButton.disabled = false;
+
+    }
+
+    var newerRegex = new RegExp("^(?:v4\\\\.5\\\\.0|v4\\\\.4\\\\.0)");
+    function isOlder(listId) {
+      return ! newerRegex.test(listId);
+    }
+
+    function escapeMeta(s) {
+      return s.replace(/(?=[.*+?^${}()|[\]\/\\])/g, '\\');
+    }
+
+    function shouldExpand(currentList, currentAnchor, listId) {
+      var listName = listId.substring(0, listId.length - 5);
+      var parentRegex = new RegExp("^" + escapeMeta(listName) + "\\.");
+      return currentList == listId
+             || (isOlder(currentAnchor) && listId == 'older.list')
+             || parentRegex.test(currentAnchor);
+    }
+
+    function collapse() {
+      /* Collapse all but the first and second releases. */
+      var unorderedLists = document.getElementsByTagName("ul");
+      var currentAnchor = location.hash.substring(1);
+      var currentList = currentAnchor + ".list";
+
+      for (var i = 0; i < unorderedLists.length; i++) {
+        var list = unorderedLists[i];
+        /* Collapse the current item, unless either the current item is one of
+         * the first two releases, or the current URL has a fragment and the
+         * fragment refers to the current item or one of its ancestors.
+         */
+        if (list.id != 'v4.5.0.list' 
+            && list.id != 'v4.4.0.list'
+            && list.className != 'bulleted-list'
+            && (currentAnchor == ''
+                || ! shouldExpand(currentList, currentAnchor, list.id))) {
+          list.style.display = "none";
+        }
+      }
+      var orderedLists = document.getElementsByTagName("ol");
+      for (var i = 0; i < orderedLists.length; i++) {
+        var list = orderedLists[i];
+        /* Collapse the current item, unless the current URL has a fragment
+         * and the fragment refers to the current item or one of its ancestors.
+         */
+        if (currentAnchor == ''
+            || ! shouldExpand(currentList, currentAnchor, list.id)) {
+          list.style.display = "none";
+        }
+      }
+      /* Add "Click to collapse/expand" tooltips to the release/section headings */
+      var anchors = document.getElementsByTagName("a");
+      for (var i = 0 ; i < anchors.length; i++) {
+        var anchor = anchors[i];
+        if (anchor.id != '') {
+          if (anchor.id == 'v4.5.0' || anchor.id == 'v4.4.0') {
+            anchor.title = 'Click to collapse';
+          } else {
+            anchor.title = 'Click to expand';
+          }
+        }
+      }
+
+      /* Insert "Expand All" and "Collapse All" buttons */
+      var buttonsParent = document.getElementById('buttons.parent');
+      var expandButton = document.createElement('button');
+      expandButton.appendChild(document.createTextNode('Expand All'));
+      expandButton.onclick = function() { expandAll(); }
+      expandButton.id = 'expand.button';
+      buttonsParent.appendChild(expandButton);
+      var collapseButton = document.createElement('button');
+      collapseButton.appendChild(document.createTextNode('Collapse All'));
+      collapseButton.onclick = function() { collapseAll(); }
+      collapseButton.id = 'collapse.button';
+      buttonsParent.appendChild(collapseButton);
+    }
+
+    window.onload = collapse;
+  </SCRIPT>
+</head>
+<body>
+
+<h1>Lucene Change Log</h1>
+
+<div id="buttons.parent"></div>
+
+      <p>For more information on past and future Lucene versions, please see:
+<a href="http://s.apache.org/luceneversions">http://s.apache.org/luceneversions</a>
+</p>
+<h2><a id="v4.5.0" href="javascript:toggleList('v4.5.0')">Release 4.5.0 </a></h2>
+<ul id="v4.5.0.list">
+  <li><a id="v4.5.0.new_features" href="javascript:toggleList('v4.5.0.new_features')">New features</a>&nbsp;&nbsp;&nbsp;(15)
+    <ol id="v4.5.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5084">LUCENE-5084</a>: Added new Elias-Fano encoder, decoder and DocIdSet
+implementations.
+<br /><span class="attrib">(Paul Elschot via Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5081">LUCENE-5081</a>: Added WAH8DocIdSet, an in-memory doc id set implementation based
+on word-aligned hybrid encoding.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5098">LUCENE-5098</a>: New broadword utility methods in oal.util.BroadWord.
+<br /><span class="attrib">(Paul Elschot via Adrien Grand, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5030">LUCENE-5030</a>: FuzzySuggester now supports optional unicodeAware
+(default is false).  If true then edits are measured in Unicode code
+points instead of UTF8 bytes.
+<br /><span class="attrib">(Artem Lukanin via Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5118">LUCENE-5118</a>: SpatialStrategy.makeDistanceValueSource() now has an optional
+multiplier for scaling degrees to another unit.
+<br /><span class="attrib">(David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5091">LUCENE-5091</a>: SpanNotQuery can now be configured with pre and post slop to act
+as a hypothetical SpanNotNearQuery.
+<br /><span class="attrib">(Tim Allison via David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4985">LUCENE-4985</a>: FacetsAccumulator.create() is now able to create a
+MultiFacetsAccumulator over a mixed set of facet requests. MultiFacetsAccumulator
+allows wrapping multiple FacetsAccumulators, allowing to easily mix
+existing and custom ones. TaxonomyFacetsAccumulator supports any
+FacetRequest which implements createFacetsAggregator and was indexed
+using the taxonomy index.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5153">LUCENE-5153</a>: AnalyzerWrapper.wrapReader allows wrapping the Reader given to
+inputReader.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5155">LUCENE-5155</a>: FacetRequest.getValueOf and .getFacetArraysSource replaced by
+FacetsAggregator.createOrdinalValueResolver. This gives better options for
+resolving an ordinal's value by FacetAggregators.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5165">LUCENE-5165</a>: Add SuggestStopFilter, to be used with analyzing
+suggesters, so that a stop word at the very end of the lookup query,
+and without any trailing token characters, will be preserved.  This
+enables query "a" to suggest apple; see
+<a href="http://blog.mikemccandless.com/2013/08/suggeststopfilter-carefully-removes.html">http://blog.mikemccandless.com/2013/08/suggeststopfilter-carefully-removes.html</a>
+for details.
+<p/>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5178">LUCENE-5178</a>: Added support for missing values to DocValues fields.
+AtomicReader.getDocsWithField returns a Bits of documents with a value,
+and FieldCache.getDocsWithField forwards to that for DocValues fields. Things like
+SortField.setMissingValue, FunctionValues.exists, and FieldValueFilter now
+work with DocValues fields.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5124">LUCENE-5124</a>: Lucene 4.5 has a new Lucene45Codec with Lucene45DocValues,
+supporting missing values and with most datastructures residing off-heap.
+Added "Memory" docvalues format that works entirely in heap, and "Disk"
+loads no datastructures into RAM. Both of these also support missing values.
+Added DiskNormsFormat (in case you want norms entirely on disk).
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-2750">LUCENE-2750</a>: Added PForDeltaDocIdSet, an in-memory doc id set implementation
+based on the PFOR encoding.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5186">LUCENE-5186</a>: Added CachingWrapperFilter.getFilter in order to be able to get
+the wrapped filter.
+<br /><span class="attrib">(Trejkaz via Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5197">LUCENE-5197</a>: Added SegmentReader.ramBytesUsed to return approximate heap RAM
+used by index datastructures.
+<br /><span class="attrib">(Areek Zillur via Robert Muir)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.5.0.bug_fixes" href="javascript:toggleList('v4.5.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(16)
+    <ol id="v4.5.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5116">LUCENE-5116</a>: IndexWriter.addIndexes(IndexReader...) should drop empty (or all
+deleted) segments.
+<br /><span class="attrib">(Robert Muir, Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5132">LUCENE-5132</a>: Spatial RecursivePrefixTree Contains predicate will throw an NPE
+when there's no indexed data and maybe in other circumstances too.
+<br /><span class="attrib">(David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5146">LUCENE-5146</a>: AnalyzingSuggester sort comparator read part of the input key as the
+weight that caused the sorter to never sort by weight first since the weight is only
+considered if the input is equal causing the malformed weight to be identical as well.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5151">LUCENE-5151</a>: Associations FacetsAggregators could enter an infinite loop when
+some result documents were missing category associations.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5152">LUCENE-5152</a>: Fix MemoryPostingsFormat to not modify borrowed BytesRef from FSTEnum
+seek/lookup which can cause sideeffects if done on a cached FST root arc.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5160">LUCENE-5160</a>: Handle the case where reading from a file or FileChannel returns -1,
+which could happen in rare cases where something happens to the file between the
+time we start the read loop (where we check the length) and when we actually do
+the read.
+<br /><span class="attrib">(gsingers, yonik, Robert Muir, Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5166">LUCENE-5166</a>: PostingsHighlighter would throw IOOBE if a term spanned the maxLength
+boundary, made it into the top-N and went to the formatter.
+<br /><span class="attrib">(Manuel Amoabeng, Michael McCandless, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4583">LUCENE-4583</a>: Indexing core no longer enforces a limit on maximum
+length binary doc values fields, but individual codecs (including
+the default one) have their own limits
+<br /><span class="attrib">(David Smiley, Robert Muir,
+Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-3849">LUCENE-3849</a>: TokenStreams now set the position increment in end(),
+so we can handle trailing holes.  If you have a custom TokenStream
+implementing end() then be sure it calls super.end().
+<br /><span class="attrib">(Robert Muir,
+Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5192">LUCENE-5192</a>: IndexWriter could allow adding same field name with different
+DocValueTypes under some circumstances.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5191">LUCENE-5191</a>: SimpleHTMLEncoder in Highlighter module broke Unicode
+outside BMP because it encoded UTF-16 chars instead of codepoints.
+The escaping of codepoints &gt; 127 was removed (not needed for valid HTML)
+and missing escaping for ' and / was added.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5201">LUCENE-5201</a>: Fixed compression bug in LZ4.compressHC when the input is highly
+compressible and the start offset of the array to compress is &gt; 0.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5221">LUCENE-5221</a>: SimilarityBase did not write norms the same way as DefaultSimilarity
+if discountOverlaps == false and index-time boosts are present for the field.
+<br /><span class="attrib">(Yubin Kim via Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5223">LUCENE-5223</a>: Fixed IndexUpgrader command line parsing: -verbose is not required
+and -dir-impl option now works correctly.
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5245">LUCENE-5245</a>: Fix MultiTermQuery's constant score rewrites to always
+return a ConstantScoreQuery to make scoring consistent. Previously it
+returned an empty unwrapped BooleanQuery, if no terms were available,
+which has a different query norm.
+<br /><span class="attrib">(Nik Everett, Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5218">LUCENE-5218</a>: In some cases, trying to retrieve or merge a 0-length
+binary doc value would hit an ArrayIndexOutOfBoundsException.
+<br /><span class="attrib">(Littlestar via Mike McCandless)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.5.0.api_changes" href="javascript:toggleList('v4.5.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(13)
+    <ol id="v4.5.0.api_changes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5094">LUCENE-5094</a>: Add ramBytesUsed() to MultiDocValues.OrdinalMap.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5114">LUCENE-5114</a>: Remove unused boolean useCache parameter from
+TermsEnum.seekCeil and .seekExact
+<br /><span class="attrib">(Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5128">LUCENE-5128</a>: IndexSearcher.searchAfter throws IllegalArgumentException if
+searchAfter exceeds the number of documents in the reader.
+<br /><span class="attrib">(Crocket via Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5129">LUCENE-5129</a>: CategoryAssociationsContainer no longer supports null
+association values for categories. If you want to index categories without
+associations, you should add them using FacetFields.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4876">LUCENE-4876</a>: IndexWriter no longer clones the given IndexWriterConfig. If you
+need to use the same config more than once, e.g. when sharing between multiple
+writers, make sure to clone it before passing to each writer.
+<br /><span class="attrib">(Shai Erera, Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5144">LUCENE-5144</a>: StandardFacetsAccumulator renamed to OldFacetsAccumulator, and all
+associated classes were moved under o.a.l.facet.old. The intention to remove it
+one day, when the features it covers (complements, partitiona, sampling) will be
+migrated to the new FacetsAggregator and FacetsAccumulator API. Also,
+FacetRequest.createAggregator was replaced by OldFacetsAccumulator.createAggregator.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5149">LUCENE-5149</a>: CommonTermsQuery now allows to set the minimum number of terms that
+should match for its high and low frequent sub-queries. Previously this was only
+supported on the low frequent terms query.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5156">LUCENE-5156</a>: CompressingTermVectors TermsEnum no longer supports ord().
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5161">LUCENE-5161</a>, <a href="http://issues.apache.org/jira/browse/LUCENE-5164">LUCENE-5164</a>: Fix default chunk sizes in FSDirectory to not be
+unnecessarily large (now 8192 bytes); also use chunking when writing to index
+files. FSDirectory#setReadChunkSize() is now deprecated and will be removed
+in Lucene 5.0.
+<br /><span class="attrib">(Uwe Schindler, Robert Muir, gsingers)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5170">LUCENE-5170</a>: Analyzer.ReuseStrategy instances are now stateless and can
+be reused in other Analyzer instances, which was not possible before.
+Lucene ships now with stateless singletons for per field and global reuse.
+Legacy code can still instantiate the deprecated implementation classes,
+but new code should use the constants. Implementors of custom strategies
+have to take care of new method signatures. AnalyzerWrapper can now be
+configured to use a custom strategy, too, ideally the one from the wrapped
+Analyzer. Analyzer adds a getter to retrieve the strategy for this use-case.
+<br /><span class="attrib">(Uwe Schindler, Robert Muir, Shay Banon)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5173">LUCENE-5173</a>: Lucene never writes segments with 0 documents anymore.
+<br /><span class="attrib">(Shai Erera, Uwe Schindler, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5178">LUCENE-5178</a>: SortedDocValues always returns -1 ord when a document is missing
+a value for the field. Previously it only did this if the SortedDocValues
+was produced by uninversion on the FieldCache.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5183">LUCENE-5183</a>: remove BinaryDocValues.MISSING. In order to determine a document
+is missing a field, use getDocsWithField instead.
+<br /><span class="attrib">(Robert Muir)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.5.0.changes_in_runtime_behavior" href="javascript:toggleList('v4.5.0.changes_in_runtime_behavior')">Changes in Runtime Behavior</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v4.5.0.changes_in_runtime_behavior.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5178">LUCENE-5178</a>: DocValues codec consumer APIs (iterables) return null values
+when the document has no value for the field.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5200">LUCENE-5200</a>: The HighFreqTerms command-line tool returns the true top-N
+by totalTermFreq when using the -t option, it uses the term statistics (faster)
+and now always shows totalTermFreq in the output.
+<br /><span class="attrib">(Robert Muir)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.5.0.optimizations" href="javascript:toggleList('v4.5.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(12)
+    <ol id="v4.5.0.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5088">LUCENE-5088</a>: Added TermFilter to filter docs by a specific term.
+<br /><span class="attrib">(Martijn van Groningen)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5119">LUCENE-5119</a>: DiskDV keeps the document-to-ordinal mapping on disk for
+SortedDocValues.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5145">LUCENE-5145</a>: New AppendingPackedLongBuffer, a new variant of the former
+AppendingLongBuffer which assumes values are 0-based.
+<br /><span class="attrib">(Boaz Leskes via Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5145">LUCENE-5145</a>: All Appending*Buffer now support bulk get.
+<br /><span class="attrib">(Boaz Leskes via Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5140">LUCENE-5140</a>: Fixed a performance regression of span queries caused by
+<a href="http://issues.apache.org/jira/browse/LUCENE-4946">LUCENE-4946</a>.
+<br /><span class="attrib">(Alan Woodward, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5150">LUCENE-5150</a>: Make WAH8DocIdSet able to inverse its encoding in order to
+compress dense sets efficiently as well.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5159">LUCENE-5159</a>: Prefix-code the sorted/sortedset value dictionaries in DiskDV.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5170">LUCENE-5170</a>: Fixed several wrapper analyzers to inherit the reuse strategy
+of the wrapped Analyzer.
+<br /><span class="attrib">(Uwe Schindler, Robert Muir, Shay Banon)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5006">LUCENE-5006</a>: Simplified DocumentsWriter and DocumentsWriterPerThread
+synchronization and concurrent interaction with IndexWriter. DWPT is now
+only setup once and has no reset logic. All segment publishing and state
+transition from DWPT into IndexWriter is now done via an Event-Queue
+processed from within the IndexWriter in order to prevent suituations
+where DWPT or DW calling int IW causing deadlocks.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5182">LUCENE-5182</a>: Terminate phrase searches early if max phrase window is
+exceeded in FastVectorHighlighter to prevent very long running phrase
+extraction if phrase terms are high frequent.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5188">LUCENE-5188</a>: CompressingStoredFieldsFormat now slices chunks containing big
+documents into fixed-size blocks so that requesting a single field does not
+necessarily force to decompress the whole chunk.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5101">LUCENE-5101</a>: CachingWrapper makes it easier to plug-in a custom cacheable
+DocIdSet implementation and uses WAH8DocIdSet by default, which should be
+more memory efficient than FixedBitSet on average as well as faster on small
+sets.
+<br /><span class="attrib">(Robert Muir)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.5.0.documentation" href="javascript:toggleList('v4.5.0.documentation')">Documentation</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v4.5.0.documentation.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4894">LUCENE-4894</a>: remove facet userguide as it was outdated. Partially absorbed into
+package's documentation and classes javadocs.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5206">LUCENE-5206</a>: Clarify FuzzyQuery's unexpected behavior on short
+terms.
+<br /><span class="attrib">(Tim Allison via Mike McCandless)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.5.0.changes_in_backwards_compatibility_policy" href="javascript:toggleList('v4.5.0.changes_in_backwards_compatibility_policy')">Changes in backwards compatibility policy</a>&nbsp;&nbsp;&nbsp;(5)
+    <ol id="v4.5.0.changes_in_backwards_compatibility_policy.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5141">LUCENE-5141</a>: CheckIndex.fixIndex(Status,Codec) is now
+CheckIndex.fixIndex(Status). If you used to pass a codec to this method, just
+remove it from the arguments.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5089">LUCENE-5089</a>, <a href="http://issues.apache.org/jira/browse/SOLR-5126">SOLR-5126</a>: Update to Morfologik 1.7.1. MorfologikAnalyzer and MorfologikFilter
+no longer support multiple "dictionaries" as there is only one dictionary available.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5170">LUCENE-5170</a>: Changed method signatures of Analyzer.ReuseStrategy to take
+Analyzer. Closeable interface was removed because the class was changed to
+be stateless.
+<br /><span class="attrib">(Uwe Schindler, Robert Muir, Shay Banon)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5187">LUCENE-5187</a>: SlowCompositeReaderWrapper constructor is now private,
+SlowCompositeReaderWrapper.wrap should be used instead.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5101">LUCENE-5101</a>: CachingWrapperFilter doesn't always return FixedBitSet instances
+anymore. Users of the join module can use
+oal.search.join.FixedBitSetCachingWrapperFilter instead.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.5.0.build" href="javascript:toggleList('v4.5.0.build')">Build</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v4.5.0.build.list">
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-5159">SOLR-5159</a>: Manifest includes non-parsed maven variables.
+<br /><span class="attrib">(Artem Karpenko via Steve Rowe)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5193">LUCENE-5193</a>: Add jar-src as top-level target to generate all Lucene and Solr
+*-src.jar.
+<br /><span class="attrib">(Steve Rowe, Shai Erera)</span></li>
+    </ol>
+  </li>
+</ul>
+<h2><a id="v4.4.0" href="javascript:toggleList('v4.4.0')">Release 4.4.0  [2013-07-23]</a></h2>
+<ul id="v4.4.0.list">
+  <li><a id="v4.4.0.changes_in_backwards_compatibility_policy" href="javascript:toggleList('v4.4.0.changes_in_backwards_compatibility_policy')">Changes in backwards compatibility policy</a>&nbsp;&nbsp;&nbsp;(18)
+    <ol id="v4.4.0.changes_in_backwards_compatibility_policy.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5085">LUCENE-5085</a>: MorfologikFilter will no longer stem words marked as keywords
+<br /><span class="attrib">(Dawid Weiss, Grzegorz Sobczyk)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4955">LUCENE-4955</a>: NGramTokenFilter now emits all n-grams for the same token at the
+same position and preserves the position length and the offsets of the
+original token.
+<br /><span class="attrib">(Simon Willnauer, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4955">LUCENE-4955</a>: NGramTokenizer now emits n-grams in a different order
+(a, ab, b, bc, c) instead of (a, b, c, ab, bc) and doesn't trim trailing
+whitespaces.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5042">LUCENE-5042</a>: The n-gram and edge n-gram tokenizers and filters now correctly
+handle supplementary characters, and the tokenizers have the ability to
+pre-tokenize the input stream similarly to CharTokenizer.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4967">LUCENE-4967</a>: NRTManager is replaced by
+ControlledRealTimeReopenThread, for controlling which requests must
+see which indexing changes, so that it can work with any
+ReferenceManager
+<br /><span class="attrib">(Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4973">LUCENE-4973</a>: SnapshotDeletionPolicy no longer requires a unique
+String id
+<br /><span class="attrib">(Mike McCandless, Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4946">LUCENE-4946</a>: The internal sorting API (SorterTemplate, now Sorter) has been
+completely refactored to allow for a better implementation of TimSort.
+<br /><span class="attrib">(Adrien Grand, Uwe Schindler, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4963">LUCENE-4963</a>: Some TokenFilter options that generate broken TokenStreams have
+been deprecated: updateOffsets=true on TrimFilter and
+enablePositionIncrements=false on all classes that inherit from
+FilteringTokenFilter: JapanesePartOfSpeechStopFilter, KeepWordFilter,
+LengthFilter, StopFilter and TypeTokenFilter.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4963">LUCENE-4963</a>: In order not to take position increments into account in
+suggesters, you now need to call setPreservePositionIncrements(false) instead
+of configuring the token filters to not increment positions.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-3907">LUCENE-3907</a>: EdgeNGramTokenizer now supports maxGramSize &gt; 1024, doesn't trim
+the input, sets position increment = 1 for all tokens and doesn't support
+backward grams anymore.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-3907">LUCENE-3907</a>: EdgeNGramTokenFilter does not support backward grams and does
+not update offsets anymore.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4981">LUCENE-4981</a>: PositionFilter is now deprecated as it can corrupt token stream
+graphs. Since it main use-case was to make query parsers generate boolean
+queries instead of phrase queries, it is now advised to use
+QueryParser.setAutoGeneratePhraseQueries(false) (for simple cases) or to
+override QueryParser.newFieldQuery.
+<br /><span class="attrib">(Adrien Grand, Steve Rowe)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5018">LUCENE-5018</a>: CompoundWordTokenFilterBase and its children
+DictionaryCompoundWordTokenFilter and HyphenationCompoundWordTokenFilter don't
+update offsets anymore.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5015">LUCENE-5015</a>: SamplingAccumulator no longer corrects the counts of the sampled
+categories. You should set TakmiSampleFixer on SamplingParams if required (but
+notice that this means slower search).
+<br /><span class="attrib">(Rob Audenaerde, Gilad Barkai, Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4933">LUCENE-4933</a>: Replace ExactSimScorer/SloppySimScorer with just SimScorer. Previously
+there were 2 implementations as a performance hack to support tableization of
+sqrt(), but this caching is removed, as sqrt is implemented in hardware with modern
+jvms and its faster not to cache.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5038">LUCENE-5038</a>: MergePolicy now has a default implementation for useCompoundFile based
+on segment size and noCFSRatio. The default implemantion was pulled up from
+TieredMergePolicy.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5063">LUCENE-5063</a>: FieldCache.get(Bytes|Shorts), SortField.Type.(BYTE|SHORT) and
+FieldCache.DEFAULT_(BYTE|SHORT|INT|LONG|FLOAT|DOUBLE)_PARSER are now
+deprecated. These methods/types assume that data is stored as strings although
+Lucene has much better support for numeric data through (Int|Long)Field,
+NumericRangeQuery and FieldCache.get(Int|Long)s.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5078">LUCENE-5078</a>: TfIDFSimilarity lets you encode the norm value as any arbitrary long.
+As a result, encode/decodeNormValue were made abstract with their signatures changed.
+The default implementation was moved to DefaultSimilarity, which encodes the norm as
+a single-byte value.
+<br /><span class="attrib">(Shai Erera)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.4.0.bug_fixes" href="javascript:toggleList('v4.4.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(23)
+    <ol id="v4.4.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4890">LUCENE-4890</a>: QueryTreeBuilder.getBuilder() only finds interfaces on the
+most derived class.
+<br /><span class="attrib">(Adriano Crestani)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4997">LUCENE-4997</a>: Internal test framework's tests are sensitive to previous
+test failures and tests.failfast.
+<br /><span class="attrib">(Dawid Weiss, Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4955">LUCENE-4955</a>: NGramTokenizer now supports inputs larger than 1024 chars.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4959">LUCENE-4959</a>: Fix incorrect return value in
+SimpleNaiveBayesClassifier.assignClass.
+<br /><span class="attrib">(Alexey Kutin via Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4972">LUCENE-4972</a>: DirectoryTaxonomyWriter created empty commits even if no changes
+were made.
+<br /><span class="attrib">(Shai Erera, Michael McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-949">LUCENE-949</a>: AnalyzingQueryParser can't work with leading wildcards.
+<br /><span class="attrib">(Tim Allison, Robert Muir, Steve Rowe)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4980">LUCENE-4980</a>: Fix issues preventing mixing of RangeFacetRequest and
+non-RangeFacetRequest when using DrillSideways.
+<br /><span class="attrib">(Mike McCandless,
+Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4996">LUCENE-4996</a>: Ensure DocInverterPerField always includes field name
+in exception messages.
+<br /><span class="attrib">(Markus Jelsma via Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4992">LUCENE-4992</a>: Fix constructor of CustomScoreQuery to take FunctionQuery
+for scoringQueries. Instead use QueryValueSource to safely wrap arbitrary
+queries and use them with CustomScoreQuery.
+<br /><span class="attrib">(John Wang, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5016">LUCENE-5016</a>: SamplingAccumulator returned inconsistent label if asked to
+aggregate a non-existing category. Also fixed a bug in RangeAccumulator if
+some readers did not have the requested numeric DV field.
+<br /><span class="attrib">(Rob Audenaerde, Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5028">LUCENE-5028</a>: Remove pointless and confusing doShare option in FST's
+PositiveIntOutputs
+<br /><span class="attrib">(Han Jiang via Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5032">LUCENE-5032</a>: Fix IndexOutOfBoundsExc in PostingsHighlighter when
+multi-valued fields exceed maxLength
+<br /><span class="attrib">(Tomás Fernández Löbbe
+via Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4933">LUCENE-4933</a>: SweetSpotSimilarity didn't apply its tf function to some
+queries (SloppyPhraseQuery, SpanQueries).
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5033">LUCENE-5033</a>: SlowFuzzyQuery was accepting too many terms (documents) when
+provided minSimilarity is an int &gt; 1
+<br /><span class="attrib">(Tim Allison via Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5045">LUCENE-5045</a>: DrillSideways.search did not work on an empty index.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4995">LUCENE-4995</a>: CompressingStoredFieldsReader now only reuses an internal buffer
+when there is no more than 32kb to decompress. This prevents from running
+into out-of-memory errors when working with large stored fields.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5062">LUCENE-5062</a>: If the spatial data for a document was comprised of multiple
+overlapping or adjacent parts then a CONTAINS predicate query might not match
+when the sum of those shapes contain the query shape but none do individually.
+A flag was added to use the original faster algorithm.
+<br /><span class="attrib">(David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4971">LUCENE-4971</a>: Fixed NPE in AnalyzingSuggester when there are too many
+graph expansions.
+<br /><span class="attrib">(Alexey Kudinov via Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5080">LUCENE-5080</a>: Combined setMaxMergeCount and setMaxThreadCount into one
+setter in ConcurrentMergePolicy: setMaxMergesAndThreads.  Previously these
+setters would not work unless you invoked them very carefully.
+<br /><span class="attrib">(Robert Muir, Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5068">LUCENE-5068</a>: QueryParserUtil.escape() does not escape forward slash.
+<br /><span class="attrib">(Matias Holte via Steve Rowe)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5103">LUCENE-5103</a>: A join on A single-valued field with deleted docs scored too few
+docs.
+<br /><span class="attrib">(David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5090">LUCENE-5090</a>: Detect mismatched readers passed to
+SortedSetDocValuesReaderState and SortedSetDocValuesAccumulator.
+<br /><span class="attrib">(Robert Muir, Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5120">LUCENE-5120</a>: AnalyzingSuggester modifed it's FST's cached root arc if payloads
+are used and the entire output resided on the root arc on the first access. This
+caused subsequent suggest calls to fail.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.4.0.optimizations" href="javascript:toggleList('v4.4.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(7)
+    <ol id="v4.4.0.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4936">LUCENE-4936</a>: Improve numeric doc values compression in case all values share
+a common divisor. In particular, this improves the compression ratio of dates
+without time when they are encoded as milliseconds since Epoch. Also support
+TABLE compressed numerics in the Disk codec.
+<br /><span class="attrib">(Robert Muir, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4951">LUCENE-4951</a>: DrillSideways uses the new Scorer.cost() method to make
+better decisions about which scorer to use internally.
+<br /><span class="attrib">(Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4976">LUCENE-4976</a>: PersistentSnapshotDeletionPolicy writes its state to a
+single snapshots_N file, and no longer requires closing
+<br /><span class="attrib">(Mike
+McCandless, Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5035">LUCENE-5035</a>: Compress addresses in FieldCacheImpl.SortedDocValuesImpl more
+efficiently.
+<br /><span class="attrib">(Adrien Grand, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4941">LUCENE-4941</a>: Sort "from" terms only once when using JoinUtil.
+<br /><span class="attrib">(Martijn van Groningen)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5050">LUCENE-5050</a>: Close the stored fields and term vectors index files as soon as
+the index has been loaded into memory to save file descriptors.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5086">LUCENE-5086</a>: RamUsageEstimator now uses official Java 7 API or a proprietary
+Oracle Java 6 API to get Hotspot MX bean, preventing AWT classes to be
+loaded on MacOSX.
+<br /><span class="attrib">(Shay Banon, Dawid Weiss, Uwe Schindler)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.4.0.new_features" href="javascript:toggleList('v4.4.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(19)
+    <ol id="v4.4.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5085">LUCENE-5085</a>: MorfologikFilter will no longer stem words marked as keywords
+<br /><span class="attrib">(Dawid Weiss, Grzegorz Sobczyk)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5064">LUCENE-5064</a>: Added PagedMutable (internal), a paged extension of
+PackedInts.Mutable which allows for storing more than 2B values.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4766">LUCENE-4766</a>: Added a PatternCaptureGroupTokenFilter that uses Java regexes to
+emit multiple tokens one for each capture group in one or more patterns.
+<br /><span class="attrib">(Simon Willnauer, Clinton Gormley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4952">LUCENE-4952</a>: Expose control (protected method) in DrillSideways to
+force all sub-scorers to be on the same document being collected.
+This is necessary when using collectors like
+ToParentBlockJoinCollector with DrillSideways.
+<br /><span class="attrib">(Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4761">SOLR-4761</a>: Add SimpleMergedSegmentWarmer, which just initializes terms,
+norms, docvalues, and so on.
+<br /><span class="attrib">(Mark Miller, Mike McCandless, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4964">LUCENE-4964</a>: Allow arbitrary Query for per-dimension drill-down to
+DrillDownQuery and DrillSideways, to support future dynamic faceting
+methods
+<br /><span class="attrib">(Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4966">LUCENE-4966</a>: Add CachingWrapperFilter.sizeInBytes()
+<br /><span class="attrib">(Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4965">LUCENE-4965</a>: Add dynamic (no taxonomy index used) numeric range
+faceting to Lucene's facet module
+<br /><span class="attrib">(Mike McCandless, Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4979">LUCENE-4979</a>: LiveFieldFields can work with any ReferenceManager, not
+just ReferenceManager&lt;IndexSearcher&gt;
+<br /><span class="attrib">(Mike McCandless)</span>.
+<p/>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4975">LUCENE-4975</a>: Added a new Replicator module which can replicate index
+revisions between server and client.
+<br /><span class="attrib">(Shai Erera, Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5022">LUCENE-5022</a>: Added FacetResult.mergeHierarchies to merge multiple
+FacetResult of the same dimension into a single one with the reconstructed
+hierarchy.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5026">LUCENE-5026</a>: Added PagedGrowableWriter, a new internal packed-ints structure
+that grows the number of bits per value on demand, can store more than 2B
+values and supports random write and read access.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5025">LUCENE-5025</a>: FST's Builder can now handle more than 2.1 billion
+"tail nodes" while building a minimal FST.
+<br /><span class="attrib">(Aaron Binns, Adrien
+Grand, Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5063">LUCENE-5063</a>: FieldCache.DEFAULT.get(Ints|Longs) now uses bit-packing to save
+memory.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5079">LUCENE-5079</a>: IndexWriter.hasUncommittedChanges() returns true if there are
+changes that have not been committed.
+<br /><span class="attrib">(yonik, Mike McCandless, Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4565">SOLR-4565</a>: Extend NorwegianLightStemFilter and NorwegianMinimalStemFilter
+to handle "nynorsk"
+<br /><span class="attrib">(Erlend Garåsen, janhoy via Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5087">LUCENE-5087</a>: Add getMultiValuedSeparator to PostingsHighlighter, for cases
+where you want a different logical separator between field values. This can
+be set to e.g. U+2029 PARAGRAPH SEPARATOR if you never want passes to span
+values.
+<br /><span class="attrib">(Mike McCandless, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5013">LUCENE-5013</a>: Added ScandinavianFoldingFilterFactory and
+ScandinavianNormalizationFilterFactory
+<br /><span class="attrib">(Karl Wettin via janhoy)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4845">LUCENE-4845</a>: AnalyzingInfixSuggester finds suggestions based on
+matches to any tokens in the suggestion, not just based on pure
+prefix matching.
+<br /><span class="attrib">(Mike McCandless, Robert Muir)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.4.0.api_changes" href="javascript:toggleList('v4.4.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(3)
+    <ol id="v4.4.0.api_changes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5077">LUCENE-5077</a>: Make it easier to use compressed norms. Lucene42NormsFormat takes
+an overhead parameter, so you can easily pass a different value other than
+PackedInts.FASTEST from your own codec.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5097">LUCENE-5097</a>: Analyzer now has an additional tokenStream(String fieldName,
+String text) method, so wrapping by StringReader for common use is no
+longer needed. This method uses an internal reuseable reader, which was
+previously only used by the Field class.
+<br /><span class="attrib">(Uwe Schindler, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4542">LUCENE-4542</a>: HunspellStemFilter's maximum recursion level is now configurable.
+<br /><span class="attrib">(Piotr, Rafał Kuć via Adrien Grand)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.4.0.build" href="javascript:toggleList('v4.4.0.build')">Build</a>&nbsp;&nbsp;&nbsp;(4)
+    <ol id="v4.4.0.build.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4987">LUCENE-4987</a>: Upgrade randomized testing to version 2.0.10:
+Test framework may fail internally due to overly aggresive J9 optimizations.
+<br /><span class="attrib">(Dawid Weiss, Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5043">LUCENE-5043</a>: The eclipse target now uses the containing directory for the
+project name.  This also enforces UTF-8 encoding when files are copied with
+filtering.
+<p/>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5055">LUCENE-5055</a>: "rat-sources" target now checks also build.xml, ivy.xml,
+forbidden-api signatures, and parts of resources folders.
+<br /><span class="attrib">(Ryan Ernst,
+Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5072">LUCENE-5072</a>: Automatically patch javadocs generated by JDK versions
+before 7u25 to work around the frame injection vulnerability (CVE-2013-1571,
+VU#225657).
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.4.0.tests" href="javascript:toggleList('v4.4.0.tests')">Tests</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v4.4.0.tests.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4901">LUCENE-4901</a>: TestIndexWriterOnJRECrash should work on any
+JRE vendor via Runtime.halt().
+<br /><span class="attrib">(Mike McCandless, Robert Muir, Uwe Schindler, Rodrigo Trujillo, Dawid Weiss)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.4.0.changes_in_runtime_behavior" href="javascript:toggleList('v4.4.0.changes_in_runtime_behavior')">Changes in runtime behavior</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="v4.4.0.changes_in_runtime_behavior.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5038">LUCENE-5038</a>: New segments written by IndexWriter are now wrapped into CFS
+by default. DocumentsWriterPerThread doesn't consult MergePolicy anymore
+to decide if a CFS must be written, instead IndexWriterConfig now has a
+property to enable / disable CFS for newly created segments.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5107">LUCENE-5107</a>: Properties files by Lucene are now written in UTF-8 encoding,
+Unicode is no longer escaped. Reading of legacy properties files with
+\u escapes is still possible.
+<br /><span class="attrib">(Uwe Schindler, Robert Muir)</span></li>
+    </ol>
+  </li>
+</ul>
+<h2><a id="older" href="javascript:toggleList('older')">Older Releases</a></h2>
+<ul id="older.list">
+<h3><a id="v4.3.1" href="javascript:toggleList('v4.3.1')">Release 4.3.1  [2013-06-18]</a></h3>
+<ul id="v4.3.1.list">
+  <li><a id="v4.3.1.bug_fixes" href="javascript:toggleList('v4.3.1.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(12)
+    <ol id="v4.3.1.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4813">SOLR-4813</a>: Fix SynonymFilterFactory to allow init parameters for
+tokenizer factory used when parsing synonyms file.
+<br /><span class="attrib">(Shingo Sasaki, hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4935">LUCENE-4935</a>: CustomScoreQuery wrongly applied its query boost twice
+(boost^2).
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4948">LUCENE-4948</a>: Fixed ArrayIndexOutOfBoundsException in PostingsHighlighter
+if you had a 64-bit JVM without compressed OOPS: IBM J9, or Oracle with
+large heap/explicitly disabled.
+<br /><span class="attrib">(Mike McCandless, Uwe Schindler, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4953">LUCENE-4953</a>: Fixed ParallelCompositeReader to inform ReaderClosedListeners of
+its synthetic subreaders. FieldCaches keyed on the atomic childs will be purged
+earlier and FC insanity prevented.  In addition, ParallelCompositeReader's
+toString() was changed to better reflect the reader structure.
+<br /><span class="attrib">(Mike McCandless, Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4968">LUCENE-4968</a>: Fixed ToParentBlockJoinQuery/Collector: correctly handle parent
+hits that had no child matches, don't throw IllegalArgumentEx when
+the child query has no hits, more aggressively catch cases where childQuery
+incorrectly matches parent documents
+<br /><span class="attrib">(Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4970">LUCENE-4970</a>: Fix boost value of rewritten NGramPhraseQuery.
+<br /><span class="attrib">(Shingo Sasaki via Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4974">LUCENE-4974</a>: CommitIndexTask was broken if no params were set.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4986">LUCENE-4986</a>: Fixed case where a newly opened near-real-time reader
+fails to reflect a delete from IndexWriter.tryDeleteDocument
+<br /><span class="attrib">(Reg,
+Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4994">LUCENE-4994</a>: Fix PatternKeywordMarkerFilter to have public constructor.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4993">LUCENE-4993</a>: Fix BeiderMorseFilter to preserve custom attributes when
+inserting tokens with position increment 0.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4991">LUCENE-4991</a>: Fix handling of synonyms in classic QueryParser.getFieldQuery for
+terms not separated by whitespace. PositionIncrementAttribute was ignored, so with
+default AND synonyms wrongly became mandatory clauses, and with OR, the
+coordination factor was wrong.
+<br /><span class="attrib">(李威, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-5002">LUCENE-5002</a>: IndexWriter#deleteAll() caused a deadlock in DWPT / DWSC if a
+DwPT was flushing concurrently while deleteAll() aborted all DWPT. The IW
+should never wait on DWPT via the flush control while holding on to the IW
+Lock.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.3.1.optimizations" href="javascript:toggleList('v4.3.1.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v4.3.1.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4938">LUCENE-4938</a>: Don't use an unnecessarily large priority queue in IndexSearcher
+methods that take top-N.
+<br /><span class="attrib">(Uwe Schindler, Mike McCandless, Robert Muir)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v4.3.0" href="javascript:toggleList('v4.3.0')">Release 4.3.0  [2013-05-05]</a></h3>
+<ul id="v4.3.0.list">
+  <li><a id="v4.3.0.changes_in_backwards_compatibility_policy" href="javascript:toggleList('v4.3.0.changes_in_backwards_compatibility_policy')">Changes in backwards compatibility policy</a>&nbsp;&nbsp;&nbsp;(8)
+    <ol id="v4.3.0.changes_in_backwards_compatibility_policy.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4810">LUCENE-4810</a>: EdgeNGramTokenFilter no longer increments position for
+multiple ngrams derived from the same input token.
+<br /><span class="attrib">(Walter Underwood
+via Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4822">LUCENE-4822</a>: KeywordTokenFilter is now an abstract class. Subclasses
+need to implement #isKeyword() in order to mark terms as keywords.
+The existing functionality has been factored out into a new
+SetKeywordTokenFilter class.
+<br /><span class="attrib">(Simon Willnauer, Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4642">LUCENE-4642</a>: Remove Tokenizer's and subclasses' ctors taking
+AttributeSource.
+<br /><span class="attrib">(Renaud Delbru, Uwe Schindler, Steve Rowe)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4833">LUCENE-4833</a>: IndexWriterConfig used to use LogByteSizeMergePolicy when
+calling setMergePolicy(null) although the default merge policy is
+TieredMergePolicy. IndexWriterConfig setters now throw an exception when
+passed null if null is not a valid value.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4849">LUCENE-4849</a>: Made ParallelTaxonomyArrays abstract with a concrete
+implementation for DirectoryTaxonomyWriter/Reader. Also moved it under
+o.a.l.facet.taxonomy.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4876">LUCENE-4876</a>: IndexDeletionPolicy is now an abstract class instead of an
+interface. IndexDeletionPolicy, MergeScheduler and InfoStream now implement
+Cloneable.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4874">LUCENE-4874</a>: FilterAtomicReader and related classes (FilterTerms,
+FilterDocsEnum, ...) don't forward anymore to the filtered instance when the
+method has a default implementation through other abstract methods.
+<br /><span class="attrib">(Adrien Grand, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4642">LUCENE-4642</a>, <a href="http://issues.apache.org/jira/browse/LUCENE-4877">LUCENE-4877</a>: Implementors of TokenizerFactory, TokenFilterFactory,
+and CharFilterFactory now need to provide at least one constructor taking
+Map&lt;String,String&gt; to be able to be loaded by the SPI framework (e.g., from Solr).
+In addition, TokenizerFactory needs to implement the abstract
+create(AttributeFactory,Reader) method.
+<br /><span class="attrib">(Renaud Delbru, Uwe Schindler,
+Steve Rowe, Robert Muir)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.3.0.api_changes" href="javascript:toggleList('v4.3.0.api_changes')">API Changes</a>&nbsp;&nbsp;&nbsp;(3)
+    <ol id="v4.3.0.api_changes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4896">LUCENE-4896</a>: Made PassageFormatter abstract in PostingsHighlighter, made
+members of DefaultPassageFormatter protected.
+<br /><span class="attrib">(Luca Cavanna via Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4844">LUCENE-4844</a>: removed TaxonomyReader.getParent(), you should use
+TaxonomyReader.getParallelArrays().parents() instead.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4742">LUCENE-4742</a>: Renamed spatial 'Node' to 'Cell', along with any method names
+and variables using this terminology.
+<br /><span class="attrib">(David Smiley)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.3.0.new_features" href="javascript:toggleList('v4.3.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(34)
+    <ol id="v4.3.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4815">LUCENE-4815</a>: DrillSideways now allows more than one FacetRequest per
+dimension
+<br /><span class="attrib">(Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-3918">LUCENE-3918</a>: IndexSorter has been ported to 4.3 API and now supports
+sorting documents by a numeric DocValues field, or reverse the order of
+the documents in the index. Additionally, apps can implement their own
+sort criteria.
+<br /><span class="attrib">(Anat Hashavit, Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4817">LUCENE-4817</a>: Added KeywordRepeatFilter that allows to emit a token twice
+once as a keyword and once as an ordinary token allow stemmers to emit
+a stemmed version along with the un-stemmed version.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4822">LUCENE-4822</a>: PatternKeywordTokenFilter can mark tokens as keywords based
+on regular expressions.
+<br /><span class="attrib">(Simon Willnauer, Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4821">LUCENE-4821</a>: AnalyzingSuggester now uses the ending offset to
+determine whether the last token was finished or not, so that a
+query "i " will no longer suggest "Isla de Muerta" for example.
+<br /><span class="attrib">(Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4642">LUCENE-4642</a>: Add create(AttributeFactory) to TokenizerFactory and
+subclasses with ctors taking AttributeFactory.
+<br /><span class="attrib">(Renaud Delbru, Uwe Schindler, Steve Rowe)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4820">LUCENE-4820</a>: Add payloads to Analyzing/FuzzySuggester, to record an
+arbitrary byte[] per suggestion
+<br /><span class="attrib">(Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4816">LUCENE-4816</a>: Add WholeBreakIterator to PostingsHighlighter
+for treating the entire content as a single Passage.
+<br /><span class="attrib">(Robert
+Muir, Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4827">LUCENE-4827</a>: Add additional ctor to PostingsHighlighter PassageScorer
+to provide bm25 k1,b,avgdl parameters.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4607">LUCENE-4607</a>: Add DocIDSetIterator.cost() and Spans.cost() for optimizing
+scoring.
+<br /><span class="attrib">(Simon Willnauer, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4795">LUCENE-4795</a>: Add SortedSetDocValuesFacetFields and
+SortedSetDocValuesAccumulator, to compute topK facet counts from a
+field's SortedSetDocValues.  This method only supports flat
+(dim/label) facets, is a bit (~25%) slower, has added cost
+per-IndexReader-open to compute its ordinal map, but it requires no
+taxonomy index and it tie-breaks facet labels in an understandable
+(by Unicode sort order) way.
+<br /><span class="attrib">(Robert Muir, Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4843">LUCENE-4843</a>: Add LimitTokenPositionFilter: don't emit tokens with
+positions that exceed the configured limit.
+<br /><span class="attrib">(Steve Rowe)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4832">LUCENE-4832</a>: Add ToParentBlockJoinCollector.getTopGroupsWithAllChildDocs, to retrieve
+all children in each group.
+<br /><span class="attrib">(Aleksey Aleev via Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4846">LUCENE-4846</a>: PostingsHighlighter subclasses can override where the
+String values come from (it still defaults to pulling from stored
+fields).
+<br /><span class="attrib">(Robert Muir, Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4853">LUCENE-4853</a>: Add PostingsHighlighter.highlightFields method that
+takes int[] docIDs instead of TopDocs.
+<br /><span class="attrib">(Robert Muir, Mike
+McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4856">LUCENE-4856</a>: If there are no matches for a given field, return the
+first maxPassages sentences
+<br /><span class="attrib">(Robert Muir, Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4859">LUCENE-4859</a>: IndexReader now exposes Terms statistics: getDocCount,
+getSumDocFreq, getSumTotalTermFreq.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4862">LUCENE-4862</a>: It is now possible to terminate collection of a single
+IndexReader leaf by throwing a CollectionTerminatedException in
+Collector.collect.
+<br /><span class="attrib">(Adrien Grand, Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4752">LUCENE-4752</a>: New SortingMergePolicy (in lucene/misc) that sorts documents
+before merging segments.
+<br /><span class="attrib">(Adrien Grand, Shai Erera, David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4860">LUCENE-4860</a>: Customize scoring and formatting per-field in
+PostingsHighlighter by subclassing and overriding the getFormatter
+and/or getScorer methods.  This also changes Passage.getMatchTerms()
+to return BytesRef[] instead of Term[].
+<br /><span class="attrib">(Robert Muir, Mike
+McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4839">LUCENE-4839</a>: Added SorterTemplate.timSort, a O(n log n) stable sort algorithm
+that performs well on partially sorted data.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4644">LUCENE-4644</a>: Added support for the "IsWithin" spatial predicate for
+RecursivePrefixTreeStrategy. It's for matching non-point indexed shapes; if
+you only have points (1/doc) then "Intersects" is equivalent and faster.
+See the javadocs.
+<br /><span class="attrib">(David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4861">LUCENE-4861</a>: Make BreakIterator per-field in PostingsHighlighter. This means
+you can override getBreakIterator(String field) to use different mechanisms
+for e.g. title vs. body fields.
+<br /><span class="attrib">(Mike McCandless, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4645">LUCENE-4645</a>: Added support for the "Contains" spatial predicate for
+RecursivePrefixTreeStrategy.
+<br /><span class="attrib">(David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4898">LUCENE-4898</a>: DirectoryReader.openIfChanged now allows opening a reader
+on an IndexCommit starting from a near-real-time reader (previously
+this would throw IllegalArgumentException).
+<br /><span class="attrib">(Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4905">LUCENE-4905</a>: Made the maxPassages parameter per-field in PostingsHighlighter.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4897">LUCENE-4897</a>: Added TaxonomyReader.getChildren for traversing a category's
+children.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4902">LUCENE-4902</a>: Added FilterDirectoryReader to allow easy filtering of a
+DirectoryReader's subreaders.
+<br /><span class="attrib">(Alan Woodward, Adrien Grand, Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4858">LUCENE-4858</a>: Added EarlyTerminatingSortingCollector to be used in conjunction
+with SortingMergePolicy, which allows to early terminate queries on sorted
+indexes, when the sort order matches the index order.
+<br /><span class="attrib">(Adrien Grand, Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4904">LUCENE-4904</a>: Added descending sort order to NumericDocValuesSorter.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-3786">LUCENE-3786</a>: Added SearcherTaxonomyManager, to manage access to both
+IndexSearcher and DirectoryTaxonomyReader for near-real-time
+faceting.
+<br /><span class="attrib">(Shai Erera, Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4915">LUCENE-4915</a>: DrillSideways now allows drilling down on fields that
+are not faceted.
+<br /><span class="attrib">(Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4895">LUCENE-4895</a>: Added support for the "IsDisjointTo" spatial predicate for
+RecursivePrefixTreeStrategy.
+<br /><span class="attrib">(David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4774">LUCENE-4774</a>: Added FieldComparator that allows sorting parent documents based on
+fields on the child / nested document level.
+<br /><span class="attrib">(Martijn van Groningen)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.3.0.optimizations" href="javascript:toggleList('v4.3.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(7)
+    <ol id="v4.3.0.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4839">LUCENE-4839</a>: SorterTemplate.merge can now be overridden in order to replace
+the default implementation which merges in-place by a faster implementation
+that could require fewer swaps at the expense of some extra memory.
+ArrayUtil and CollectionUtil override it so that their mergeSort and timSort
+methods are faster but only require up to 1% of extra memory.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4571">LUCENE-4571</a>: Speed up BooleanQuerys with minNrShouldMatch to use
+skipping.
+<br /><span class="attrib">(Stefan Pohl via Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4863">LUCENE-4863</a>: StemmerOverrideFilter now uses a FST to represent its overrides
+in memory.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4889">LUCENE-4889</a>: UnicodeUtil.codePointCount implementation replaced with a
+non-array-lookup version.
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4923">LUCENE-4923</a>: Speed up BooleanQuerys processing of in-order disjunctions.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4926">LUCENE-4926</a>: Speed up DisjunctionMatchQuery.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4930">LUCENE-4930</a>: Reduce contention in older/buggy JVMs when using
+AttributeSource#addAttribute() because java.lang.ref.ReferenceQueue#poll()
+is implemented using synchronization.
+<br /><span class="attrib">(Christian Ziech, Karl Wright,
+Uwe Schindler)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.3.0.bug_fixes" href="javascript:toggleList('v4.3.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(18)
+    <ol id="v4.3.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4868">LUCENE-4868</a>: SumScoreFacetsAggregator used an incorrect index into
+the scores array.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4882">LUCENE-4882</a>: FacetsAccumulator did not allow to count ROOT category (i.e.
+count dimensions).
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4876">LUCENE-4876</a>: IndexWriterConfig.clone() now clones its MergeScheduler,
+IndexDeletionPolicy and InfoStream in order to make an IndexWriterConfig and
+its clone fully independent.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4893">LUCENE-4893</a>: Facet counts were multiplied as many times as
+FacetsCollector.getFacetResults() is called.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4888">LUCENE-4888</a>: Fixed SloppyPhraseScorer, MultiDocs(AndPositions)Enum and
+MultiSpansWrapper which happened to sometimes call DocIdSetIterator.advance
+with target&lt;=current (in this case the behavior of advance is undefined).
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4899">LUCENE-4899</a>: FastVectorHighlighter failed with StringIndexOutOfBoundsException
+if a single highlight phrase or term was greater than the fragCharSize producing
+negative string offsets.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4877">LUCENE-4877</a>: Throw exception for invalid arguments in analysis factories.
+<br /><span class="attrib">(Steve Rowe, Uwe Schindler, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4914">LUCENE-4914</a>: SpatialPrefixTree's Node/Cell.reset() forgot to reset the 'leaf'
+flag.  It affects SpatialRecursivePrefixTreeStrategy on non-point indexed
+shapes, as of Lucene 4.2.
+<br /><span class="attrib">(David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4913">LUCENE-4913</a>: FacetResultNode.ordinal was always 0 when all children
+are returned.
+<br /><span class="attrib">(Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4918">LUCENE-4918</a>: Highlighter closes the given IndexReader if QueryScorer
+is used with an external IndexReader.
+<br /><span class="attrib">(Simon Willnauer, Sirvan Yahyaei)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4880">LUCENE-4880</a>: Fix MemoryIndex to consume empty terms from the tokenstream consistent
+with IndexWriter. Previously it discarded them.
+<br /><span class="attrib">(Timothy Allison via Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4885">LUCENE-4885</a>: FacetsAccumulator did not set the correct value for
+FacetResult.numValidDescendants.
+<br /><span class="attrib">(Mike McCandless, Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4925">LUCENE-4925</a>: Fixed IndexSearcher.search when the argument list contains a Sort
+and one of the sort fields is the relevance score. Only IndexSearchers created
+with an ExecutorService are concerned.
+<br /><span class="attrib">(Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4738">LUCENE-4738</a>, <a href="http://issues.apache.org/jira/browse/LUCENE-2727">LUCENE-2727</a>, <a href="http://issues.apache.org/jira/browse/LUCENE-2812">LUCENE-2812</a>: Simplified
+DirectoryReader.indexExists so that it's more robust to transient
+IOExceptions (e.g. due to issues like file descriptor exhaustion),
+but this will also cause it to err towards returning true for
+example if the directory contains a corrupted index or an incomplete
+initial commit.  In addition, IndexWriter with OpenMode.CREATE will
+now succeed even if the directory contains a corrupted index
+<br /><span class="attrib">(Billow
+Gao, Robert Muir, Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4928">LUCENE-4928</a>: Stored fields and term vectors could become super slow in case
+of tiny documents (a few bytes). This is especially problematic when switching
+codecs since bulk-merge strategies can't be applied and the same chunk of
+documents can end up being decompressed thousands of times. A hard limit on
+the number of documents per chunk has been added to fix this issue.
+<br /><span class="attrib">(Robert Muir, Adrien Grand)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4934">LUCENE-4934</a>: Fix minor equals/hashcode problems in facet/DrillDownQuery,
+BoostingQuery, MoreLikeThisQuery, FuzzyLikeThisQuery, and block join queries.
+<br /><span class="attrib">(Robert Muir, Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4504">LUCENE-4504</a>: Fix broken sort comparator in ValueSource.getSortField,
+used when sorting by a function query.
+<br /><span class="attrib">(Tom Shally via Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4937">LUCENE-4937</a>: Fix incorrect sorting of float/double values (+/-0, NaN).
+<br /><span class="attrib">(Robert Muir, Uwe Schindler)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.3.0.documentation" href="javascript:toggleList('v4.3.0.documentation')">Documentation</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v4.3.0.documentation.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4841">LUCENE-4841</a>: Added example SimpleSortedSetFacetsExample to show how
+to use the new SortedSetDocValues backed facet implementation.
+<br /><span class="attrib">(Shai Erera, Mike McCandless)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.3.0.build" href="javascript:toggleList('v4.3.0.build')">Build</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="v4.3.0.build.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4879">LUCENE-4879</a>: Upgrade randomized testing to version 2.0.9:
+Filter stack traces on console output.
+<br /><span class="attrib">(Dawid Weiss, Robert Muir)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v4.2.1" href="javascript:toggleList('v4.2.1')">Release 4.2.1  [2013-04-03]</a></h3>
+<ul id="v4.2.1.list">
+  <li><a id="v4.2.1.bug_fixes" href="javascript:toggleList('v4.2.1.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(9)
+    <ol id="v4.2.1.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4713">LUCENE-4713</a>: The SPI components used to load custom codecs or analysis
+components were fixed to also scan the Lucene ClassLoader in addition
+to the context ClassLoader, so Lucene is always able to find its own
+codecs. The special case of a null context ClassLoader is now also
+supported.
+<br /><span class="attrib">(Christian Kohlschütter, Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4819">LUCENE-4819</a>: seekExact(BytesRef, boolean) did not work correctly with
+Sorted[Set]DocValuesTermsEnum.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4826">LUCENE-4826</a>: PostingsHighlighter was not returning the top N best
+scoring passages.
+<br /><span class="attrib">(Robert Muir, Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4854">LUCENE-4854</a>: Fix DocTermOrds.getOrdTermsEnum() to not return negative
+ord on initial next().
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4836">LUCENE-4836</a>: Fix SimpleRateLimiter#pause to return the actual time spent
+sleeping instead of the wakeup timestamp in nano seconds.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4828">LUCENE-4828</a>: BooleanQuery no longer extracts terms from its MUST_NOT
+clauses.
+<br /><span class="attrib">(Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4589">SOLR-4589</a>: Fixed CPU spikes and poor performance in lazy field loading
+of multivalued fields.
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4870">LUCENE-4870</a>: Fix bug where an entire index might be deleted by the IndexWriter
+due to false detection if an index exists in the directory when
+OpenMode.CREATE_OR_APPEND is used. This might also affect application that set
+the open mode manually using DirectoryReader#indexExists.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4878">LUCENE-4878</a>: Override getRegexpQuery in MultiFieldQueryParser to prefent
+NullPointerException when regular expression syntax is used with
+MultiFieldQueryParser.
+<br /><span class="attrib">(Simon Willnauer, Adam Rauch)</span></li>
+    </ol>
+  </li>
+  <li><a id="v4.2.1.optimizations" href="javascript:toggleList('v4.2.1.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(3)
+    <ol id="v4.2.1.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4819">LUCENE-4819</a>: Added Sorted[Set]DocValues.termsEnum(), and optimized the
+default codec for improved enumeration performance.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4854">LUCENE-4854</a>: Speed up TermsEnum of FieldCache.getDocTermOrds.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4857">LUCENE-4857</a>: Don't unnecessarily copy stem override map in
+StemmerOverrideFilter.
+<br /><span class="attrib">(Simon Willnauer)</span></li>
+    </ol>
+  </li>
+</ul>
+<h3><a id="v4.2.0" href="javascript:toggleList('v4.2.0')">Release 4.2.0  [2013-03-11]</a></h3>
+<ul id="v4.2.0.list">
+  <li><a id="v4.2.0.changes_in_backwards_compatibility_policy" href="javascript:toggleList('v4.2.0.changes_in_backwards_compatibility_policy')">Changes in backwards compatibility policy</a>&nbsp;&nbsp;&nbsp;(12)
+    <ol id="v4.2.0.changes_in_backwards_compatibility_policy.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4602">LUCENE-4602</a>: FacetFields now stores facet ordinals in a DocValues field,
+rather than a payload. This forces rebuilding existing indexes, or do a
+one time migration using FacetsPayloadMigratingReader. Since DocValues
+support in-memory caching, CategoryListCache was removed too.
+<br /><span class="attrib">(Shai Erera, Michael McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4697">LUCENE-4697</a>: FacetResultNode is now a concrete class with public members
+(instead of getter methods).
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4600">LUCENE-4600</a>: FacetsCollector is now an abstract class with two
+implementations: StandardFacetsCollector (the old version of
+FacetsCollector) and CountingFacetsCollector. FacetsCollector.create()
+returns the most optimized collector for the given parameters.
+<br /><span class="attrib">(Shai Erera, Michael McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4700">LUCENE-4700</a>: OrdinalPolicy is now per CategoryListParams, and is no longer
+an interface, but rather an enum with values NO_PARENTS and ALL_PARENTS.
+PathPolicy was removed, you should extend FacetFields and DrillDownStream
+to control which categories are added as drill-down terms.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4547">LUCENE-4547</a>: DocValues improvements:
+<ul class="bulleted-list">
+<li class="bulleted-list">
+Simplified codec API: codecs are now only responsible for encoding and
+  decoding docvalues, they do not need to do buffering or RAM accounting.
+</li>
+<li class="bulleted-list">
+Per-Field support: added PerFieldDocValuesFormat, which allows you to
+  use a different DocValuesFormat per field
+<br /><span class="attrib">(like postings)</span>.
+</li>
+<li class="bulleted-list">
+Unified with FieldCache api: DocValues can be accessed via FieldCache API,
+  so it works automatically with grouping/join/sort/function queries, etc.
+</li>
+<li class="bulleted-list">
+Simplified types: There are only 3 types (NUMERIC, BINARY, SORTED), so its
+  not necessary to specify for example that all of your binary values have
+  the same length. Instead its easy for the Codec API to optimize encoding
+  based on any properties of the content.
+<br /><span class="attrib">(Simon Willnauer, Adrien Grand, Mike McCandless, Robert Muir)</span></li>
+</ul>
+<p/>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4757">LUCENE-4757</a>: Cleanup and refactoring of FacetsAccumulator, FacetRequest,
+FacetsAggregator and FacetResultsHandler API. If your application did
+FacetsCollector.create(), you should not be affected, but if you wrote
+an Aggregator, then you should migrate it to the per-segment
+FacetsAggregator. You can still use StandardFacetsAccumulator, which works
+with the old API (for now).
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4761">LUCENE-4761</a>: Facet packages reorganized. Should be easy to fix your import
+statements, if you use an IDE such as Eclipse.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4750">LUCENE-4750</a>: Convert DrillDown to DrillDownQuery, so you can initialize it
+and add drill-down categories to it.
+<br /><span class="attrib">(Michael McCandless, Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4759">LUCENE-4759</a>: remove FacetRequest.SortBy; result categories are always
+sorted by value, while ties are broken by category ordinal.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4772">LUCENE-4772</a>: Facet associations moved to new FacetsAggregator API. You
+should override FacetsAccumualtor and return the relevant aggregator,
+for aggregating the association values.
+<br /><span class="attrib">(Shai Erera)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4748">LUCENE-4748</a>: A FacetRequest on a non-existent field now returns an
+empty FacetResult instead of skipping it.
+<br /><span class="attrib">(Shai Erera, Mike McCandless)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4806">LUCENE-4806</a>: The default category delimiter character was changed
+from U+F749 to U+001F, since the latter uses 1 byte vs 3 bytes for
+the former.  Existing facet indices must be reindexed.
+<br /><span class="attrib">(Robert
+Muir, Shai Erera, Mike McCandless)</span></li>
+    </ol>
+  </li>

[... 8612 lines stripped ...]