You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sa...@apache.org on 2013/01/21 15:10:42 UTC

svn commit: r1273 [6/7] - in /release/lucene: java/4.1.0/ java/4.1.0/changes/ solr/4.1.0/ solr/4.1.0/changes/

Added: release/lucene/solr/4.1.0/changes/Changes.html
==============================================================================
--- release/lucene/solr/4.1.0/changes/Changes.html (added)
+++ release/lucene/solr/4.1.0/changes/Changes.html Mon Jan 21 14:09:51 2013
@@ -0,0 +1,6310 @@
+<!--
+**********************************************************
+** 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>Apache Solr Release Notes</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("^(?:4\\\\.1\\\\.0|4\\\\.0\\\\.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 != '4.1.0.list' 
+            && list.id != '4.0.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 == '4.1.0' || anchor.id == '4.0.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>Apache Solr Release Notes</h1>
+
+<div id="buttons.parent"></div>
+
+<h2>Introduction</h2>
+      <p>Apache Solr is an open source enterprise search server based on the Apache Lucene Java
+search library, with XML/HTTP and JSON APIs, hit highlighting, faceted search,
+caching, replication, and a web administration interface. It runs in a Java
+servlet container such as Tomcat.
+</p>
+      <p>See <a href="http://lucene.apache.org/solr">http://lucene.apache.org/solr</a> for more information.
+</p>
+<h2>Getting Started</h2>
+      <p>You need a Java 1.6 VM or later installed.
+In this release, there is an example Solr server including a bundled
+servlet container in the directory named "example".
+See the tutorial at <a href="http://lucene.apache.org/solr/tutorial.html">http://lucene.apache.org/solr/tutorial.html</a>
+</p>
+<h2><a id="4.1.0" href="javascript:toggleList('4.1.0')">Release 4.1.0 </a></h2>
+<ul id="4.1.0.list">
+  <li><a id="4.1.0.versions_of_major_components" href="javascript:toggleList('4.1.0.versions_of_major_components')">Versions of Major Components</a>&nbsp;&nbsp;&nbsp;(5)
+    <ol id="4.1.0.versions_of_major_components.list">
+      <li>Apache Tika 1.2
+</li>
+      <li>Carrot2 3.6.2
+</li>
+      <li>Velocity 1.7 and Velocity Tools 2.0
+</li>
+      <li>Apache UIMA 2.3.1
+</li>
+      <li>Apache ZooKeeper 3.4.5
+</li>
+    </ol>
+  </li>
+  <li><a id="4.1.0.upgrading_from_solr_4.0.0" href="javascript:toggleList('4.1.0.upgrading_from_solr_4.0.0')">Upgrading from Solr 4.0.0</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="4.1.0.upgrading_from_solr_4.0.0.list">
+      <li>Custom java parsing plugins need to migrate from throwing the internal
+ParseException to throwing SyntaxError.
+</li>
+      <li>BaseDistributedSearchTestCase now randomizes the servlet context it uses when
+creating Jetty instances.  Subclasses that assume a hard coded context of
+"/solr" should either be fixed to use the "String context" variable, or should
+take advantage of the new BaseDistributedSearchTestCase(String) constructor
+to explicitly specify a fixed servlet context path.  See <a href="http://issues.apache.org/jira/browse/SOLR-4136">SOLR-4136</a> for details.
+</li>
+    </ol>
+  </li>
+  <h3>Detailed Change List</h3>
+  <li><a id="4.1.0.new_features" href="javascript:toggleList('4.1.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(35)
+    <ol id="4.1.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-2255">SOLR-2255</a>: Enhanced pivot faceting to use local-params in the same way that
+regular field value faceting can. This means support for excluding a filter
+query, using a different output key, and specifying 'threads' to do
+facet.method=fcs concurrently. PivotFacetHelper now extends SimpleFacet and
+the getFacetImplementation() extension hook was removed.
+<br /><span class="attrib">(dsmiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3897">SOLR-3897</a>: A highlighter parameter "hl.preserveMulti" to return all of the
+values of a multiValued field in their original order when highlighting.
+<br /><span class="attrib">(Joel Bernstein via yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3929">SOLR-3929</a>: Support configuring IndexWriter max thread count in solrconfig.
+<br /><span class="attrib">(phunt via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3906">SOLR-3906</a>: Add support for AnalyzingSuggester (<a href="http://issues.apache.org/jira/browse/LUCENE-3842">LUCENE-3842</a>), where the
+underlying analyzed form used for suggestions is separate from the returned
+text.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3985">SOLR-3985</a>: ExternalFileField caches can be reloaded on firstSearcher/
+newSearcher events using the ExternalFileFieldReloader
+<br /><span class="attrib">(Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3911">SOLR-3911</a>: Make Directory and DirectoryFactory first class so that the majority
+of Solr's features work with any custom implementations.
+<br /><span class="attrib">(Mark Miller)</span><br />
+<p/>
+Additional Work:<br />
+<ul class="bulleted-list">
+<li class="bulleted-list">
+<a href="http://issues.apache.org/jira/browse/SOLR-4032">SOLR-4032</a>: Files larger than an internal buffer size fail to replicate.
+<br /><span class="attrib">(Mark Miller, Markus Jelsma)</span></li>
+<li class="bulleted-list">
+<a href="http://issues.apache.org/jira/browse/SOLR-4033">SOLR-4033</a>: Consistently use the solrconfig.xml lockType everywhere.
+<br /><span class="attrib">(Mark Miller, Markus Jelsma)</span></li>
+<li class="bulleted-list">
+<a href="http://issues.apache.org/jira/browse/SOLR-4144">SOLR-4144</a>: Replication using too much RAM.
+<br /><span class="attrib">(yonik, Markus Jelsma)</span></li>
+<li class="bulleted-list">
+<a href="http://issues.apache.org/jira/browse/SOLR-4187">SOLR-4187</a>: NPE on Directory release
+<br /><span class="attrib">(Mark Miller, Markus Jelsma)</span></li>
+</ul>
+<p/>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4051">SOLR-4051</a>: Add &lt;propertyWriter /&gt; element to DIH's data-config.xml file,
+allowing the user to specify the location, filename and Locale for
+the "data-config.properties" file.  Alternatively, users can specify their
+own property writer implementation for greater control. This new configuration
+element is optional, and defaults mimic prior behavior.  The one exception is
+that the "root" locale is default. Previously it was the machine's default locale.
+<br /><span class="attrib">(James Dyer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4084">SOLR-4084</a>: Add FuzzyLookupFactory, which is like AnalyzingSuggester except that
+it can tolerate typos in the input.
+<br /><span class="attrib">(Areek Zillur via Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4088">SOLR-4088</a>: New and improved auto host detection strategy for SolrCloud.
+<br /><span class="attrib">(Raintung Li via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3970">SOLR-3970</a>: SystemInfoHandler now exposes more details about the
+JRE/VM/Java version in use.
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4101">SOLR-4101</a>: Add support for storing term offsets in the index via a
+'storeOffsetsWithPositions' flag on field definitions in the schema.
+<br /><span class="attrib">(Tom Winch, Alan Woodward)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4093">SOLR-4093</a>: Solr QParsers may now be directly invoked in the lucene
+query syntax without the _query_ magic field hack.
+Example:  foo AND {!term f=myfield v=$qq}
+<br /><span class="attrib">(yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4087">SOLR-4087</a>: Add MAX_DOC_FREQ option to MoreLikeThis.
+<br /><span class="attrib">(Andrew Janowczyk via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4114">SOLR-4114</a>: Allow creating more than one shard per instance with the
+Collection API.
+<br /><span class="attrib">(Per Steffensen, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3531">SOLR-3531</a>: Allowing configuring maxMergeSizeMB and maxCachedMB when
+using NRTCachingDirectoryFactory.
+<br /><span class="attrib">(Andy Laird via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4118">SOLR-4118</a>: Fix replicationFactor to align with industry usage.
+replicationFactor now means the total number of copies
+of a document stored in the collection (or the total number of
+physical indexes for a single logical slice of the collection).
+For example if replicationFactor=3 then for a given shard there
+will be a total of 3 replicas (one of which will normally be
+designated as the leader.)
+<br /><span class="attrib">(yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4124">SOLR-4124</a>: You should be able to set the update log directory with the
+CoreAdmin API the same way as the data directory.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4028">SOLR-4028</a>: When using ZK chroot, it would be nice if Solr would create the
+initial path when it doesn't exist.
+<br /><span class="attrib">(Tomás Fernández Löbbe via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3948">SOLR-3948</a>: Calculate/display deleted documents in admin interface.
+<br /><span class="attrib">(Shawn Heisey via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4030">SOLR-4030</a>: Allow rate limiting Directory IO based on the IO context.
+<br /><span class="attrib">(Mark Miller, Radim Kolar)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4166">SOLR-4166</a>: LBHttpSolrServer ignores ResponseParser passed in constructor.
+<br /><span class="attrib">(Steve Molloy via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4140">SOLR-4140</a>: Allow access to the collections API through CloudSolrServer
+without referencing an existing collection.
+<br /><span class="attrib">(Per Steffensen via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-788">SOLR-788</a>: Distributed search support for MLT.
+<br /><span class="attrib">(Matthew Woytowitz, Mike Anderson, Jamie Johnson, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4120">SOLR-4120</a>: Collection API: Support for specifying a list of Solr addresses to
+spread a new collection across.
+<br /><span class="attrib">(Per Steffensen via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4110">SOLR-4110</a>: Configurable Content-Type headers for PHPResponseWriters and
+PHPSerializedResponseWriter.
+<br /><span class="attrib">(Dominik Siebel via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-1028">SOLR-1028</a>: The ability to specify "transient" and "loadOnStartup" as a new properties of
+&lt;core&gt; tags in solr.xml. Can specify "transientCacheSize" in the &lt;cores&gt; tag. Together
+these allow cores to be loaded only when needed and only transientCacheSize transient
+cores will be loaded at a time, the rest aged out on an LRU basis.
+<p/>
+</li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4246">SOLR-4246</a>: When update.distrib is set to skip update processors before
+the distributed update processor, always include the log update processor
+so forwarded updates will still be logged.
+<br /><span class="attrib">(yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4230">SOLR-4230</a>: The new Solr 4 spatial fields now work with the {!geofilt} and
+{!bbox} query parsers. The score local-param works too.
+<br /><span class="attrib">(David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-1972">SOLR-1972</a>: Add extra statistics to RequestHandlers - 5 &amp; 15-minute reqs/sec
+rolling averages; median, 75th, 95th, 99th, 99.9th percentile request times
+<br /><span class="attrib">(Alan Woodward, Shawn Heisey, Adrien Grand, Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4271">SOLR-4271</a>: Add support for PostingsHighlighter.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4255">SOLR-4255</a>: The new Solr 4 spatial fields now have a 'filter' boolean local-param
+that can be set to false to not filter. Its useful when there is already a spatial
+filter query but you also need to sort or boost by distance.
+<br /><span class="attrib">(David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4265">SOLR-4265</a>, <a href="http://issues.apache.org/jira/browse/SOLR-4283">SOLR-4283</a>: Solr now parses request parameters (in URL or sent with POST
+using content-type application/x-www-form-urlencoded) in its dispatcher code. It no
+longer relies on special configuration settings in Tomcat or other web containers
+to enable UTF-8 encoding, which is mandatory for correct Solr behaviour. Query
+strings passed in via the URL need to be properly-%-escaped, UTF-8 encoded
+bytes, otherwise Solr refuses to handle the request. The maximum length of
+x-www-form-urlencoded POST parameters can now be configured through the
+requestDispatcher/requestParsers/@formdataUploadLimitInKB setting in
+solrconfig.xml (defaults to 2 MiB). Solr now works out of the box with
+e.g. Tomcat, JBoss,...
+<br /><span class="attrib">(Uwe Schindler, Dawid Weiss, Alex Rocher)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-2201">SOLR-2201</a>: DIH's "formatDate" function now supports a timezone as an optional
+fourth parameter
+<br /><span class="attrib">(James Dyer, Mark Waddle)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4302">SOLR-4302</a>: New parameter 'indexInfo' (defaults to true) in CoreAdmin STATUS
+command can be used to omit index specific information
+<br /><span class="attrib">(Shahar Davidson via shalin)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-2592">SOLR-2592</a>: Collection specific document routing.  The "compositeId"
+router is the default for collections with hash based routing (i.e. when
+numShards=N is specified on collection creation).  Documents with ids sharing
+the same domain (prefix) will be routed to the same shard, allowing for
+efficient querying.
+<p/>
+Example:
+  The following two documents will be indexed to the same shard
+  since they share the same domain "customerB!".
+  <code><pre>
+     {"id" : "customerB!doc1" [...] }
+     {"id" : "customerB!doc2" [...] }</pre></code>
+  At query time, one can specify a "shard.keys" parameter that lists what
+  shards the query should cover.
+     <a href="http://.../query?q=my_query&amp;shard.keys=customerB!">http://.../query?q=my_query&amp;shard.keys=customerB!</a>
+<p/>
+Collections that do not specify numShards at collection creation time
+use custom sharding and default to the "implicit" router.  Document updates
+received by a shard will be indexed to that shard, unless a "_shard_" parameter
+or document field names a different shard.
+<br /><span class="attrib">(Michael Garski, Dan Rosher, yonik)</span></li>
+    </ol>
+  </li>
+  <li><a id="4.1.0.optimizations" href="javascript:toggleList('4.1.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(15)
+    <ol id="4.1.0.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3788">SOLR-3788</a>: Admin Cores UI should redirect to newly created core details
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3895">SOLR-3895</a>: XML and XSLT UpdateRequestHandler should not try to resolve
+external entities. This improves speed of loading e.g. XSL-transformed
+XHTML documents.
+<br /><span class="attrib">(Martin Herfurt, uschindler, hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3614">SOLR-3614</a>: Fix XML parsing in XPathEntityProcessor to correctly expand
+named entities, but ignore external entities.
+<br /><span class="attrib">(uschindler, hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3734">SOLR-3734</a>: Improve Schema-Browser Handling for CopyField using
+dynamicField's
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3941">SOLR-3941</a>: The "commitOnLeader" part of distributed recovery can use
+openSearcher=false.
+<br /><span class="attrib">(Tomás Fernández Löbbe via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4063">SOLR-4063</a>: Allow CoreContainer to load multiple SolrCores in parallel rather
+than just serially.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4199">SOLR-4199</a>: When doing zk retries due to connection loss, rather than just
+retrying for 2 minutes, retry in proportion to the session timeout.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4262">SOLR-4262</a>: Replication Icon on Dashboard does not reflect Master-/Slave-
+State
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4264">SOLR-4264</a>: Missing Error-Screen on UI's Cloud-Page
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4261">SOLR-4261</a>: Percentage Infos on Dashboard have a fixed width
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3851">SOLR-3851</a>: create a new core/delete an existing core should also update
+the main/left list of cores on the admin UI
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3840">SOLR-3840</a>: XML query response display is unreadable in Solr Admin Query UI
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3982">SOLR-3982</a>: Admin UI: Various Dataimport Improvements
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4296">SOLR-4296</a>: Admin UI: Improve Dataimport Auto-Refresh
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3458">SOLR-3458</a>: Allow multiple Items to stay open on Plugins-Page
+<br /><span class="attrib">(steffkes)</span></li>
+    </ol>
+  </li>
+  <li><a id="4.1.0.bug_fixes" href="javascript:toggleList('4.1.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(81)
+    <ol id="4.1.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4288">SOLR-4288</a>: Improve logging for FileDataSource (basePath, relative
+resources).
+<br /><span class="attrib">(Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4007">SOLR-4007</a>: Morfologik dictionaries not available in Solr field type
+due to class loader lookup problems.
+<br /><span class="attrib">(Lance Norskog, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3560">SOLR-3560</a>: Handle different types of Exception Messages for Logging UI
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3637">SOLR-3637</a>: Commit Status at Core-Admin UI is always false
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3917">SOLR-3917</a>: Partial State on Schema-Browser UI is not defined for Dynamic
+Fields &amp; Types
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3939">SOLR-3939</a>: Consider a sync attempt from leader to replica that fails due
+to 404 a success.
+<br /><span class="attrib">(Mark Miller, Joel Bernstein)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3940">SOLR-3940</a>: Rejoining the leader election incorrectly triggers the code path
+for a fresh cluster start rather than fail over.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3961">SOLR-3961</a>: Fixed error using LimitTokenCountFilterFactory
+<br /><span class="attrib">(Jack Krupansky, hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3933">SOLR-3933</a>: Distributed commits are not guaranteed to be ordered within a
+request.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3939">SOLR-3939</a>: An empty or just replicated index cannot become the leader of a
+shard after a leader goes down.
+<br /><span class="attrib">(Joel Bernstein, yonik, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3971">SOLR-3971</a>: A collection that is created with numShards=1 turns into a
+numShards=2 collection after starting up a second core and not specifying
+numShards.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3988">SOLR-3988</a>: Fixed SolrTestCaseJ4.adoc(SolrInputDocument) to respect
+field and document boosts
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3981">SOLR-3981</a>: Fixed bug that resulted in document boosts being compounded in
+&lt;copyField/&gt; destination fields.
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3920">SOLR-3920</a>: Fix server list caching in CloudSolrServer when using more than one
+collection list with the same instance.
+<br /><span class="attrib">(Grzegorz Sobczyk, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3938">SOLR-3938</a>: prepareCommit command omits commitData causing a failure to trigger
+replication to slaves.
+<br /><span class="attrib">(yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3992">SOLR-3992</a>: QuerySenderListener doesn't populate document cache.
+<br /><span class="attrib">(Shotaro Kamio, yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3995">SOLR-3995</a>: Recovery may never finish on SolrCore shutdown if the last reference to
+a SolrCore is closed by the recovery process.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3998">SOLR-3998</a>: Atomic update on uniqueKey field itself causes duplicate document.
+<br /><span class="attrib">(Eric Spencer, yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4001">SOLR-4001</a>: In CachingDirectoryFactory#close, if there are still refs for a
+Directory outstanding, we need to wait for them to be released before closing.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4005">SOLR-4005</a>: If CoreContainer fails to register a created core, it should close it.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4009">SOLR-4009</a>: OverseerCollectionProcessor is not resilient to many error conditions
+and can stop running on errors.
+<br /><span class="attrib">(Raintung Li, milesli, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4019">SOLR-4019</a>: Log stack traces for 503/Service Unavailable SolrException if not
+thrown by PingRequestHandler. Do not log exceptions if a user tries to view a
+hidden file using ShowFileRequestHandler.
+<br /><span class="attrib">(Tomás Fernández Löbbe via James Dyer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3589">SOLR-3589</a>: Edismax parser does not honor mm parameter if analyzer splits a token.
+<br /><span class="attrib">(Tom Burton-West, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4031">SOLR-4031</a>: Upgrade to Jetty 8.1.7 to fix a bug where in very rare occasions
+the content of two concurrent requests get mixed up.
+<br /><span class="attrib">(Per Steffensen, yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4060">SOLR-4060</a>: ReplicationHandler can try and do a snappull and open a new IndexWriter
+after shutdown has already occurred, leaving an IndexWriter that is not closed.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4055">SOLR-4055</a>: Fix a thread safety issue with the Collections API that could
+cause actions to be targeted at the wrong SolrCores.
+<br /><span class="attrib">(Raintung Li, Per Steffensen via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3993">SOLR-3993</a>: If multiple SolrCore's for a shard coexist on a node, on cluster
+restart, leader election would stall until timeout, waiting to see all of
+the replicas come up.
+<br /><span class="attrib">(Mark Miller, Alexey Kudinov)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-2045">SOLR-2045</a>: Databases that require a commit to be issued before closing the
+connection on a non-read-only database leak connections.  Also expanded the
+SqlEntityProcessor test to sometimes use Derby as well as HSQLDB (Derby is
+one db affected by this bug).
+<br /><span class="attrib">(Fenlor Sebastia, James Dyer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4064">SOLR-4064</a>: When there is an unexpected exception while trying to run the new
+leader process, the SolrCore will not correctly rejoin the election.
+<br /><span class="attrib">(Po Rui via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3989">SOLR-3989</a>: SolrZkClient constructor dropped exception cause when throwing
+a new RuntimeException.
+<br /><span class="attrib">(Colin Bartolome, yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4036">SOLR-4036</a>: field aliases in fl should not cause properties of target field
+to be used.
+<br /><span class="attrib">(Martin Koch, yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4003">SOLR-4003</a>: The SolrZKClient clean method should not try and clear zk paths
+that start with /zookeeper, as this can fail and stop the removal of
+further nodes.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4076">SOLR-4076</a>: SolrQueryParser should run fuzzy terms through
+MultiTermAwareComponents to ensure that (for example) a fuzzy query of
+foobar~2 is equivalent to FooBar~2 on a field that includes lowercasing.
+<br /><span class="attrib">(yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4081">SOLR-4081</a>: QueryParsing.toString, used during debugQuery=true, did not
+correctly handle ExtendedQueries such as WrappedQuery
+(used when cache=false), spatial queries, and frange queries.
+<br /><span class="attrib">(Eirik Lygre, yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3959">SOLR-3959</a>: Ensure the internal comma separator of poly fields is escaped
+for CSVResponseWriter.
+<br /><span class="attrib">(Areek Zillur via Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4075">SOLR-4075</a>: A logical shard that has had all of it's SolrCores unloaded should
+be removed from the cluster state.
+<br /><span class="attrib">(Mark Miller, Gilles Comeau)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4034">SOLR-4034</a>: Check if a collection already exists before trying to create a
+new one.
+<br /><span class="attrib">(Po Rui, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4097">SOLR-4097</a>: Race can cause NPE in logging line on first cluster state update.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4099">SOLR-4099</a>: Allow the collection api work queue to make forward progress even
+when it's watcher is not fired for some reason.
+<br /><span class="attrib">(Raintung Li via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3960">SOLR-3960</a>: Fixed a bug where Distributed Grouping ignored PostFilters
+<br /><span class="attrib">(Nathan Visagan, hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3842">SOLR-3842</a>: DIH would not populate multivalued fields if the column name
+derives from a resolved variable
+<br /><span class="attrib">(James Dyer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4117">SOLR-4117</a>: Retrieving the size of the index may use the wrong index dir if
+you are replicating.
+<br /><span class="attrib">(Mark Miller, Markus Jelsma)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-2890">SOLR-2890</a>: Fixed a bug that prevented omitNorms and omitTermFreqAndPositions
+options from being respected in some &lt;fieldType/&gt; declarations
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4159">SOLR-4159</a>: When we are starting a shard from rest, a potential leader should
+not consider it's last published state when deciding if it can be the new
+leader.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4158">SOLR-4158</a>: When a core is registering in ZooKeeper it may not wait long
+enough to find the leader due to how long the potential leader waits to see
+replicas.
+<br /><span class="attrib">(Mark Miller, Alain Rogister)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4162">SOLR-4162</a>: ZkCli usage examples are not correct because the zkhost parameter
+is not present and it is mandatory for all commands.
+<br /><span class="attrib">(Tomás Fernández Löbbe via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4071">SOLR-4071</a>: Validate that name is pass to Collections API create, and behave the
+same way as on startup when collection.configName is not explicitly passed.
+<br /><span class="attrib">(Po Rui, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4127">SOLR-4127</a>: Added explicit error message if users attempt Atomic document
+updates with either updateLog or DistribUpdateProcessor.
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4136">SOLR-4136</a>: Fix SolrCloud behavior when using "hostContext" containing "_"
+or"/" characters.  This fix also makes SolrCloud more accepting of
+hostContext values with leading/trailing slashes.
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4168">SOLR-4168</a>: Ensure we are using the absolute latest index dir when getting
+list of files for replication.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4102">SOLR-4102</a>: Fix UI javascript error if canonical hostname can not be resolved
+<br /><span class="attrib">(steffkes via hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4178">SOLR-4178</a>: ReplicationHandler should abort any current pulls and wait for
+it's executor to stop during core close.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3918">SOLR-3918</a>: Fixed the 'dist-war-excl-slf4j' ant target to exclude all
+slf4j jars, so that the resulting war is usable as is provided the servlet
+container includes the correct slf4j api and impl jars.
+<br /><span class="attrib">(Shawn Heisey, hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4198">SOLR-4198</a>: OverseerCollectionProcessor should implement ClosableThread.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4213">SOLR-4213</a>: Directories that are not shutdown until DirectoryFactory#close
+do not have close listeners called on them.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4134">SOLR-4134</a>: Standard (XML) request writer cannot "set" multiple values into
+multivalued field with partial updates.
+<br /><span class="attrib">(Luis Cappa Banda, Will Butler, shalin)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3972">SOLR-3972</a>: Fix ShowFileRequestHandler to not log a warning in the
+(expected) situation of a file not found.
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4133">SOLR-4133</a>: Cannot "set" field to null with partial updates when using the
+standard RequestWriter.
+<br /><span class="attrib">(Will Butler, shalin)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4223">SOLR-4223</a>: "maxFormContentSize" in jetty.xml is not picked up by jetty 8
+so set it via solr webapp context file.
+<br /><span class="attrib">(shalin)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4175">SOLR-4175</a>:SearchComponent chain can't contain two components of the
+same class and use debugQuery.
+<br /><span class="attrib">(Tomás Fernández Löbbe via ehatcher)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4244">SOLR-4244</a>: When coming back from session expiration we should not wait for
+the leader to see us in the down state if we are the node that must become
+the leader.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4245">SOLR-4245</a>: When a core is registering with ZooKeeper, the timeout to find the
+leader in the cluster state is 30 seconds rather than leaderVoteWait + extra
+time.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4238">SOLR-4238</a>: Fix jetty example requestLog config
+<br /><span class="attrib">(jm via hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4251">SOLR-4251</a>: Fix SynonymFilterFactory when an optional tokenizerFactory is supplied.
+<br /><span class="attrib">(Chris Bleakley via rmuir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4253">SOLR-4253</a>: Misleading resource loading warning from Carrot2 clustering
+component fixed
+<br /><span class="attrib">(Stanisław Osiński)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4257">SOLR-4257</a>: PeerSync updates and Log Replay updates should not wait for
+a ZooKeeper connection in order to proceed.
+<br /><span class="attrib">(yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4045">SOLR-4045</a>: SOLR admin page returns HTTP 404 on core names containing
+a '.' (dot)
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4176">SOLR-4176</a>: analysis ui: javascript not properly handling URL decoding
+of input
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4079">SOLR-4079</a>: Long core names break web gui appearance and functionality
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4263">SOLR-4263</a>: Incorrect Link from Schema-Browser to Query From for Top-Terms
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3829">SOLR-3829</a>: Admin UI Logging events broken if schema.xml defines a catch-all
+dynamicField with type ignored
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4275">SOLR-4275</a>: Fix TrieTokenizer to no longer throw StringIndexOutOfBoundsException
+in admin UI / AnalysisRequestHandler when you enter no number to tokenize.
+<br /><span class="attrib">(Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4279">SOLR-4279</a>: Wrong exception message if _version_ field is multivalued
+<br /><span class="attrib">(shalin)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4170">SOLR-4170</a>: The 'backup' ReplicationHandler command can sometimes use a stale
+index directory rather than the current one.
+<br /><span class="attrib">(Mark Miller, Marcin Rzewucki)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3876">SOLR-3876</a>: Solr Admin UI is completely dysfunctional on IE 9
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4112">SOLR-4112</a>: Fixed DataImportHandler ZKAwarePropertiesWriter implementation so
+import works fine with SolrCloud clusters
+<br /><span class="attrib">(Deniz Durmus, James Dyer,
+Erick Erickson, shalin)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4291">SOLR-4291</a>: Harden the Overseer work queue thread loop.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3820">SOLR-3820</a>: Solr Admin Query form is missing some edismax request parameters
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4217">SOLR-4217</a>: post.jar no longer ignores -Dparams when -Durl is used.
+<br /><span class="attrib">(Alexandre Rafalovitch, ehatcher)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4303">SOLR-4303</a>: On replication, if the generation of the master is lower than the
+slave we need to force a full copy of the index.
+<br /><span class="attrib">(Mark Miller, Gregg Donovan)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4266">SOLR-4266</a>: HttpSolrServer does not release connection properly on exception
+when no response parser is used.
+<br /><span class="attrib">(Steve Molloy via Mark Miller)</span></li>
+    </ol>
+  </li>
+  <li><a id="4.1.0.other_changes" href="javascript:toggleList('4.1.0.other_changes')">Other Changes</a>&nbsp;&nbsp;&nbsp;(29)
+    <ol id="4.1.0.other_changes.list">
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4106">SOLR-4106</a>: Javac/ ivy path warnings with morfologik fixed by
+upgrading to Morfologik 1.5.5
+<br /><span class="attrib">(Robert Muir, Dawid Weiss)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3899">SOLR-3899</a>: SolrCore should not log at warning level when the index directory
+changes - it's an info event.
+<br /><span class="attrib">(Tobias Bergman, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3861">SOLR-3861</a>: Refactor SolrCoreState so that it's managed by SolrCore.
+<br /><span class="attrib">(Mark Miller, hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3966">SOLR-3966</a>: Eliminate superfluous warning from LanguageIdentifierUpdateProcessor
+<br /><span class="attrib">(Markus Jelsma via hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3932">SOLR-3932</a>: SolrCmdDistributorTest either takes 3 seconds or 3 minutes.
+<br /><span class="attrib">(yonik, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3856">SOLR-3856</a>: New tests for SqlEntityProcessor/CachedSqlEntityProcessor
+<br /><span class="attrib">(James Dyer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4067">SOLR-4067</a>: ZkStateReader#getLeaderProps should not return props for a leader
+that it does not think is live.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4086">SOLR-4086</a>: DIH refactor of VariableResolver and Evaluator.  VariableResolver
+and each built-in Evaluator are separate concrete classes.  DateFormatEvaluator
+now defaults with the ROOT Locale. However, users may specify a different
+Locale using an optional new third parameter.
+<br /><span class="attrib">(James Dyer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3602">SOLR-3602</a>: Update ZooKeeper to 3.4.5
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4095">SOLR-4095</a>: DIH NumberFormatTransformer &amp; DateFormatTransformer default to the
+ROOT Locale if none is specified.  These previously used the machine's default.
+<br /><span class="attrib">(James Dyer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4096">SOLR-4096</a>: DIH FileDataSource &amp; FieldReaderDataSource default to UTF-8 encoding
+if none is specified.  These previously used the machine's default.
+<br /><span class="attrib">(James Dyer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-1916">SOLR-1916</a>: DIH to not use Lucene-forbidden Java APIs
+(default encoding, locale, etc.)
+<br /><span class="attrib">(James Dyer, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4111">SOLR-4111</a>: SpellCheckCollatorTest#testContextSensitiveCollate to test against
+both DirectSolrSpellChecker &amp; IndexBasedSpellChecker
+<br /><span class="attrib">(Tomás Fernández Löbbe via James Dyer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-2141">SOLR-2141</a>: Better test coverage for Evaluators
+<br /><span class="attrib">(James Dyer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4119">SOLR-4119</a>: Update Guava to 13.0.1
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4074">SOLR-4074</a>: Raise default ramBufferSizeMB to 100 from 32.
+<br /><span class="attrib">(yonik, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4062">SOLR-4062</a>: The update log location in solrconfig.xml should default to
+${solr.ulog.dir} rather than ${solr.data.dir:}
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4155">SOLR-4155</a>: Upgrade Jetty to 8.1.8.
+<br /><span class="attrib">(Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-2986">SOLR-2986</a>: Add MoreLikeThis to warning about features that require uniqueKey.
+Also, change the warning to warn log level.
+<br /><span class="attrib">(Shawn Heisey via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4163">SOLR-4163</a>: README improvements
+<br /><span class="attrib">(Shawn Heisey via hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4248">SOLR-4248</a>: "ant eclipse" should declare .svn directories as derived.
+<br /><span class="attrib">(Shawn Heisey via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3279">SOLR-3279</a>: Upgrade Carrot2 to 3.6.2
+<br /><span class="attrib">(Stanisław Osiński)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4254">SOLR-4254</a>: Harden the 'leader requests replica to recover' code path.
+<br /><span class="attrib">(Mark Miller, yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4226">SOLR-4226</a>: Extract fl parsing code out of ReturnFields constructor.
+<br /><span class="attrib">(Ryan Ernst via Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4208">SOLR-4208</a>: ExtendedDismaxQParserPlugin has been refactored to make
+subclassing easier.
+<br /><span class="attrib">(Tomás Fernández Löbbe, hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3735">SOLR-3735</a>: Relocate the example mime-to-extension mapping, and
+upgrade Velocity Engine to 1.7
+<br /><span class="attrib">(ehatcher)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4287">SOLR-4287</a>: Removed "apache-" prefix from Solr distribution and artifact
+filenames.
+<br /><span class="attrib">(Ryan Ernst, Robert Muir, Steve Rowe)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4016">SOLR-4016</a>: Deduplication does not work with atomic/partial updates so
+disallow atomic update requests which change signature generating fields.
+<br /><span class="attrib">(Joel Nothman, yonik, shalin)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-4308">SOLR-4308</a>: Remove the problematic and now unnecessary log4j-over-slf4j.
+<br /><span class="attrib">(Mark Miller)</span></li>
+    </ol>
+  </li>
+</ul>
+<h2><a id="4.0.0" href="javascript:toggleList('4.0.0')">Release 4.0.0  [2012-10-12]</a></h2>
+<ul id="4.0.0.list">
+  <li><a id="4.0.0.versions_of_major_components" href="javascript:toggleList('4.0.0.versions_of_major_components')">Versions of Major Components</a>&nbsp;&nbsp;&nbsp;(5)
+    <ol id="4.0.0.versions_of_major_components.list">
+      <li>Apache Tika 1.2
+</li>
+      <li>Carrot2 3.5.0
+</li>
+      <li>Velocity 1.6.4 and Velocity Tools 2.0
+</li>
+      <li>Apache UIMA 2.3.1
+</li>
+      <li>Apache ZooKeeper 3.3.6
+</li>
+    </ol>
+  </li>
+  <li><a id="4.0.0.upgrading_from_solr_4.0.0-beta" href="javascript:toggleList('4.0.0.upgrading_from_solr_4.0.0-beta')">Upgrading from Solr 4.0.0-BETA</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="4.0.0.upgrading_from_solr_4.0.0-beta.list">
+      <li>In order to better support distributed search mode, the TermVectorComponent's
+response format has been changed so that if the schema defines a
+uniqueKeyField, then that field value is used as the "key" for each document in
+it's response section, instead of the internal lucene doc id.  Users w/o a
+uniqueKeyField will continue to see the same response format.  See <a href="http://issues.apache.org/jira/browse/SOLR-3229">SOLR-3229</a>
+for more details.
+</li>
+      <li>If you are using SolrCloud's distributed update request capabilities and a non
+string type id field, you must re-index.
+</li>
+    </ol>
+  </li>
+  <li><a id="4.0.0.upgrading_from_solr_4.0.0-alpha" href="javascript:toggleList('4.0.0.upgrading_from_solr_4.0.0-alpha')">Upgrading from Solr 4.0.0-ALPHA</a>&nbsp;&nbsp;&nbsp;(2)
+    <ol id="4.0.0.upgrading_from_solr_4.0.0-alpha.list">
+      <li>Solr is now much more strict about requiring that the uniqueKeyField feature
+(if used) must refer to a field which is not multiValued.  If you upgrade from
+an earlier version of Solr and see an error that your uniqueKeyField "can not
+be configured to be multivalued" please add 'multiValued="false"' to the
+&lt;field /&gt; declaration for your uniqueKeyField.  See <a href="http://issues.apache.org/jira/browse/SOLR-3682">SOLR-3682</a> for more details.
+</li>
+      <li>In addition, please review the notes above about upgrading from 4.0.0-BETA
+</li>
+    </ol>
+  </li>
+  <li><a id="4.0.0.upgrading_from_solr_3.6" href="javascript:toggleList('4.0.0.upgrading_from_solr_3.6')">Upgrading from Solr 3.6</a>&nbsp;&nbsp;&nbsp;(10)
+    <ol id="4.0.0.upgrading_from_solr_3.6.list">
+      <li>The Lucene index format has changed and as a result, once you upgrade,
+previous versions of Solr will no longer be able to read your indices.
+In a master/slave configuration, all searchers/slaves should be upgraded
+before the master.  If the master were to be updated first, the older
+searchers would not be able to read the new index format.
+<p/>
+</li>
+      <li>Setting abortOnConfigurationError=false is no longer supported
+(since it has never worked properly).  Solr will now warn you if
+you attempt to set this configuration option at all. (see <a href="http://issues.apache.org/jira/browse/SOLR-1846">SOLR-1846</a>)
+<p/>
+</li>
+      <li>The default logic for the 'mm' param of the 'dismax' QParser has
+been changed.  If no 'mm' param is specified (either in the query,
+or as a default in solrconfig.xml) then the effective value of the
+'q.op' param (either in the query or as a default in solrconfig.xml
+or from the 'defaultOperator' option in schema.xml) is used to
+influence the behavior.  If q.op is effectively "AND" then mm=100%.
+If q.op is effectively "OR" then mm=0%.  Users who wish to force the
+legacy behavior should set a default value for the 'mm' param in
+their solrconfig.xml file.
+<p/>
+</li>
+      <li>The VelocityResponseWriter is no longer built into the core.  Its JAR and
+dependencies now need to be added (via &lt;lib&gt; or solr/home lib inclusion),
+and it needs to be registered in solrconfig.xml like this:
+  &lt;queryResponseWriter name="velocity" class="solr.VelocityResponseWriter"/&gt;
+<p/>
+</li>
+      <li>The update request parameter to choose Update Request Processor Chain is
+renamed from "update.processor" to "update.chain". The old parameter was
+deprecated but still working since Solr3.2, but is now removed
+entirely.
+<p/>
+</li>
+      <li>The &lt;indexDefaults&gt; and &lt;mainIndex&gt; sections of solrconfig.xml are discontinued
+and replaced with the &lt;indexConfig&gt; section. There are also better defaults.
+When migrating, if you don't know what your old settings mean, simply delete
+both &lt;indexDefaults&gt; and &lt;mainIndex&gt; sections. If you have customizations,
+put them in &lt;indexConfig&gt; section - with same syntax as before.
+<p/>
+</li>
+      <li>Two of the SolrServer subclasses in SolrJ were renamed/replaced.
+CommonsHttpSolrServer is now HttpSolrServer, and
+StreamingUpdateSolrServer is now ConcurrentUpdateSolrServer.
+<p/>
+</li>
+      <li>The PingRequestHandler no longer looks for a &lt;healthcheck/&gt; option in the
+(legacy) &lt;admin&gt; section of solrconfig.xml.  Users who wish to take
+advantage of this feature should configure a "healthcheckFile" init param
+directly on the  PingRequestHandler.  As part of this change, relative file
+paths have been fixed to be resolved against the data dir.  See the example
+solrconfig.xml and <a href="http://issues.apache.org/jira/browse/SOLR-1258">SOLR-1258</a> for more details.
+<p/>
+</li>
+      <li>Due to low level changes to support SolrCloud, the uniqueKey field can no
+longer be populated via &lt;copyField/&gt; or &lt;field default=...&gt; in the
+schema.xml.  Users wishing to have Solr automatically generate a uniqueKey
+value when adding documents should instead use an instance of
+solr.UUIDUpdateProcessorFactory in their update processor chain.  See
+<a href="http://issues.apache.org/jira/browse/SOLR-2796">SOLR-2796</a> for more details.
+<p/>
+</li>
+      <li>In addition, please review the notes above about upgrading from 4.0.0-BETA, and 4.0.0-ALPHA
+<p/>
+</li>
+    </ol>
+  </li>
+  <h3>Detailed Change List</h3>
+  <li><a id="4.0.0.new_features" href="javascript:toggleList('4.0.0.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(8)
+    <ol id="4.0.0.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3670">SOLR-3670</a>: New CountFieldValuesUpdateProcessorFactory makes it easy to index
+the number of values in another field for later use at query time.
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-2768">SOLR-2768</a>: new "mod(x,y)" function for computing the modulus of two value
+sources.
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3238">SOLR-3238</a>: Numerous small improvements to the Admin UI
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3597">SOLR-3597</a>: seems like a lot of wasted whitespace at the top of the admin screens
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3304">SOLR-3304</a>: Added Solr adapters for Lucene 4's new spatial module.  With
+SpatialRecursivePrefixTreeFieldType ("location_rpt" in example schema), it is
+possible to index a variable number of points per document (and sort on them),
+index not just points but any Spatial4j supported shape such as polygons, and
+to query on these shapes too.  Polygons requires adding JTS to the classpath.
+<br /><span class="attrib">(David Smiley)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3825">SOLR-3825</a>: Added optional capability to log what ids are in a response
+<br /><span class="attrib">(Scott Stults via gsingers)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3821">SOLR-3821</a>: Added 'df' to the UI Query form
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3822">SOLR-3822</a>: Added hover titles to the edismax params on the UI Query form
+<br /><span class="attrib">(steffkes)</span></li>
+    </ol>
+  </li>
+  <li><a id="4.0.0.optimizations" href="javascript:toggleList('4.0.0.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(4)
+    <ol id="4.0.0.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3715">SOLR-3715</a>: improve concurrency of the transaction log by removing
+synchronization around log record serialization.
+<br /><span class="attrib">(yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3807">SOLR-3807</a>: Currently during recovery we pause for a number of seconds after
+waiting for the leader to see a recovering state so that any previous updates
+will have finished before our commit on the leader - we don't need this wait
+for peersync.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3837">SOLR-3837</a>: When a leader is elected and asks replicas to sync back to him and
+that fails, we should ask those nodes to recovery asynchronously rather than
+synchronously.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3709">SOLR-3709</a>: Cache the url list created from the ClusterState in CloudSolrServer
+on each request.
+<br /><span class="attrib">(Mark Miller)</span></li>
+    </ol>
+  </li>
+  <li><a id="4.0.0.bug_fixes" href="javascript:toggleList('4.0.0.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(58)
+    <ol id="4.0.0.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3685">SOLR-3685</a>: Solr Cloud sometimes skipped peersync attempt and replicated instead due
+to tlog flags not being cleared when no updates were buffered during a previous
+replication.
+<br /><span class="attrib">(Markus Jelsma, Mark Miller, yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3229">SOLR-3229</a>: Fixed TermVectorComponent to work with distributed search
+<br /><span class="attrib">(Hang Xie, hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3725">SOLR-3725</a>: Fixed package-local-src-tgz target to not bring in unnecessary jars
+and binary contents.
+<br /><span class="attrib">(Michael Dodsworth via rmuir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3649">SOLR-3649</a>: Fixed bug in JavabinLoader that caused deleteById(List&lt;String&gt; ids)
+to not work in SolrJ
+<br /><span class="attrib">(siren)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3730">SOLR-3730</a>: Rollback is not implemented quite right and can cause corner case fails in
+SolrCloud tests.
+<br /><span class="attrib">(rmuir, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-2981">SOLR-2981</a>: Fixed StatsComponent to no longer return duplicated information
+when requesting multiple stats.facet fields.
+<br /><span class="attrib">(Roman Kliewer via hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3743">SOLR-3743</a>: Fixed issues with atomic updates and optimistic concurrency in
+conjunction with stored copyField targets by making real-time get never
+return copyField targets.
+<br /><span class="attrib">(yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3746">SOLR-3746</a>: Proper error reporting if updateLog is configured w/o necessary
+"_version_" field in schema.xml
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3745">SOLR-3745</a>: Proper error reporting if SolrCloud mode is used w/o
+necessary "_version_" field in schema.xml
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3770">SOLR-3770</a>: Overseer may lose updates to cluster state
+<br /><span class="attrib">(siren)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3721">SOLR-3721</a>: Fix bug that could theoretically allow multiple recoveries to run
+briefly at the same time if the recovery thread join call was interrupted.
+<br /><span class="attrib">(Per Steffensen, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3782">SOLR-3782</a>: A leader going down while updates are coming in can cause shard
+inconsistency.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3611">SOLR-3611</a>: We do not show ZooKeeper data in the UI for a node that has children.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3789">SOLR-3789</a>: Fix bug in SnapPuller that caused "internal" compression to fail.
+<br /><span class="attrib">(siren)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3790">SOLR-3790</a>: ConcurrentModificationException could be thrown when using hl.fl=*.
+Fixed in r1231606.
+<br /><span class="attrib">(yonik, koji)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3668">SOLR-3668</a>: DataImport : Specifying Custom Parameters
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3793">SOLR-3793</a>: UnInvertedField faceting cached big terms in the filter
+cache that ignored deletions, leading to duplicate documents in search
+later when a filter of the same term was specified.
+<br /><span class="attrib">(Günter Hipler, hossman, yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3679">SOLR-3679</a>: Core Admin UI gives no feedback if "Add Core" fails
+<br /><span class="attrib">(steffkes, hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3795">SOLR-3795</a>: Fixed LukeRequestHandler response to correctly return field name
+strings in copyDests and copySources arrays
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3699">SOLR-3699</a>: Fixed some Directory leaks when there were errors during SolrCore
+or SolrIndexWriter initialization.
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3518">SOLR-3518</a>: Include final 'hits' in log information when aggregating a
+distibuted request
+<br /><span class="attrib">(Markus Jelsma via hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3628">SOLR-3628</a>: SolrInputField and SolrInputDocument are now consistently backed
+by Collections passed in to setValue/setField, and defensively copy values
+from Collections passed to addValue/addField
+<br /><span class="attrib">(Tom Switzer via hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3595">SOLR-3595</a>: CurrencyField now generates an appropriate error on schema init
+if it is configured as multiValued - this has never been properly supported,
+but previously failed silently in odd ways.
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3823">SOLR-3823</a>: Fix 'bq' parsing in edismax.  Please note that this required
+reverting the negative boost support added by <a href="http://issues.apache.org/jira/browse/SOLR-3278">SOLR-3278</a>
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3827">SOLR-3827</a>: Fix shareSchema=true in solr.xml
+<br /><span class="attrib">(Tomás Fernández Löbbe via hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3809">SOLR-3809</a>: Fixed config file replication when subdirectories are used
+<br /><span class="attrib">(Emmanuel Espina via hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3828">SOLR-3828</a>: Fixed QueryElevationComponent so that using 'markExcludes' does
+not modify the result set or ranking of 'excluded' documents relative to
+not using elevation at all.
+<br /><span class="attrib">(Alexey Serba via hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3569">SOLR-3569</a>: Fixed debug output on distributed requests when there are no
+results found.
+<br /><span class="attrib">(David Bowen via hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3811">SOLR-3811</a>: Query Form using wrong values for dismax, edismax
+<br /><span class="attrib">(steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3779">SOLR-3779</a>: DataImportHandler's LineEntityProcessor when used in conjunction
+with FileListEntityProcessor would only process the first file.
+<br /><span class="attrib">(Ahmet Arslan via James Dyer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3791">SOLR-3791</a>: CachedSqlEntityProcessor would throw a NullPointerException when
+a query returns a row with a NULL key.
+<br /><span class="attrib">(Steffen Moelter via James Dyer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3833">SOLR-3833</a>: When a election is started because a leader went down, the new
+leader candidate should decline if the last state they published was not
+active.
+<br /><span class="attrib">(yonik, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3836">SOLR-3836</a>: When doing peer sync, we should only count sync attempts that
+cannot reach the given host as success when the candidate leader is
+syncing with the replicas - not when replicas are syncing to the leader.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3835">SOLR-3835</a>: In our leader election algorithm, if on connection loss we found
+we did not create our election node, we should retry, not throw an exception.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3834">SOLR-3834</a>: A new leader on cluster startup should also run the leader sync
+process in case there was a bad cluster shutdown.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3772">SOLR-3772</a>: On cluster startup, we should wait until we see all registered
+replicas before running the leader process - or if they all do not come up,
+N amount of time.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3756">SOLR-3756</a>: If we are elected the leader of a shard, but we fail to publish
+this for any reason, we should clean up and re trigger a leader election.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3812">SOLR-3812</a>: ConnectionLoss during recovery can cause lost updates, leading to
+shard inconsistency.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3813">SOLR-3813</a>: When a new leader syncs, we need to ask all shards to sync back,
+not just those that are active.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3641">SOLR-3641</a>: CoreContainer is not persisting roles core attribute.
+<br /><span class="attrib">(hossman, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3527">SOLR-3527</a>: SolrCmdDistributor drops some of the important commit attributes
+(maxOptimizeSegments, softCommit, expungeDeletes) when sending a commit to
+replicas.
+<br /><span class="attrib">(Andy Laird, Tomás Fernández Löbbe, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3844">SOLR-3844</a>: SolrCore reload can fail because it tries to remove the index
+write lock while already holding it.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3831">SOLR-3831</a>: Atomic updates do not distribute correctly to other nodes.
+<br /><span class="attrib">(Jim Musil, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3465">SOLR-3465</a>: Replication causes two searcher warmups.
+<br /><span class="attrib">(Michael Garski, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3645">SOLR-3645</a>: /terms should default to distrib=false.
+<br /><span class="attrib">(Nick Cotton, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3759">SOLR-3759</a>: Various fixes to the example-DIH configs
+<br /><span class="attrib">(Ahmet Arslan, hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3777">SOLR-3777</a>: Dataimport-UI does not send unchecked checkboxes
+<br /><span class="attrib">(Glenn MacStravic
+via steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3850">SOLR-3850</a>: DataImportHandler "cacheKey" parameter was incorrectly renamed "cachePk"
+<br /><span class="attrib">(James Dyer)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3087">SOLR-3087</a>: Fixed DOMUtil so that code doing attribute validation will
+automaticly ignore nodes in the resserved "xml" prefix - in particular this
+fixes some bugs related to xinclude and fieldTypes.
+<br /><span class="attrib">(Amit Nithian, hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3783">SOLR-3783</a>: Fixed Pivot Faceting to work with facet.missing=true
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3869">SOLR-3869</a>: A PeerSync attempt to it's replicas by a candidate leader should
+not fail on o.a.http.conn.ConnectTimeoutException.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3875">SOLR-3875</a>: Fixed index boosts on multi-valued fields when docBoost is used
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3878">SOLR-3878</a>: Exception when using open-ended range query with CurrencyField
+<br /><span class="attrib">(janhoy)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3891">SOLR-3891</a>: CacheValue in CachingDirectoryFactory cannot be used outside of
+solr.core package.
+<br /><span class="attrib">(phunt via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3892">SOLR-3892</a>: Inconsistent locking when accessing cache in CachingDirectoryFactory
+from RAMDirectoryFactory and MockDirectoryFactory.
+<br /><span class="attrib">(phunt via Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3883">SOLR-3883</a>: Distributed indexing forwards non-applicable request params.
+<br /><span class="attrib">(Dan Sutton, Per Steffensen, yonik, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3903">SOLR-3903</a>: Fixed MissingFormatArgumentException in ConcurrentUpdateSolrServer
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3916">SOLR-3916</a>: Fixed whitespace bug in parsing the fl param
+<br /><span class="attrib">(hossman)</span></li>
+    </ol>
+  </li>
+  <li><a id="4.0.0.other_changes" href="javascript:toggleList('4.0.0.other_changes')">Other Changes</a>&nbsp;&nbsp;&nbsp;(18)
+    <ol id="4.0.0.other_changes.list">
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3690">SOLR-3690</a>: Fixed binary release packages to include dependencie needed for
+the solr-test-framework
+<br /><span class="attrib">(hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-2857">SOLR-2857</a>: The /update/json and /update/csv URLs were restored to aid
+in the migration of existing clients.
+<br /><span class="attrib">(yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3691">SOLR-3691</a>: SimplePostTool: Mode for crawling/posting web pages
+See <a href="http://wiki.apache.org/solr/ExtractingRequestHandler">http://wiki.apache.org/solr/ExtractingRequestHandler</a> for examples
+<br /><span class="attrib">(janhoy)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3707">SOLR-3707</a>: Upgrade Solr to Tika 1.2
+<br /><span class="attrib">(janhoy)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-2747">SOLR-2747</a>: Updated changes2html.pl to handle Solr's CHANGES.txt; added
+target 'changes-to-html' to solr/build.xml.
+<br /><span class="attrib">(Steve Rowe, Robert Muir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3752">SOLR-3752</a>: When a leader goes down, have the Overseer clear the leader state
+in cluster.json
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3751">SOLR-3751</a>: Add defensive checks for SolrCloud updates and requests that ensure
+the local state matches what we can tell the request expected.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3773">SOLR-3773</a>: Hash based on the external String id rather than the indexed
+representation for distributed updates.
+<br /><span class="attrib">(Michael Garski, yonik, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3780">SOLR-3780</a>: Maven build: Make solrj tests run separately from solr-core.
+<br /><span class="attrib">(Steve Rowe)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3772">SOLR-3772</a>: Optionally, on cluster startup, we can wait until we see all registered
+replicas before running the leader process - or if they all do not come up,
+N amount of time.
+<br /><span class="attrib">(Jan Høydahl, Per Steffensen, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3750">SOLR-3750</a>: Optionaly, on session expiration, we can explicitly wait some time before
+running the leader sync process so that we are sure every node participates.
+<br /><span class="attrib">(Per Steffensen, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3824">SOLR-3824</a>: Velocity: Error messages from search not displayed
+<br /><span class="attrib">(janhoy)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3826">SOLR-3826</a>: Test framework improvements for specifying coreName on initCore
+<br /><span class="attrib">(Amit Nithian, hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3749">SOLR-3749</a>: Allow default UpdateLog syncLevel to be configured by
+solrconfig.xml
+<br /><span class="attrib">(Raintung Li, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3845">SOLR-3845</a>: Rename numReplicas to replicationFactor in Collections API.
+<br /><span class="attrib">(yonik, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3815">SOLR-3815</a>: SolrCloud - Add properties such as "range" to shards, which changes
+the clusterstate.json and puts the shard replicas under "replicas".
+<br /><span class="attrib">(yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3871">SOLR-3871</a>: SyncStrategy should use an executor for the threads it creates to
+request recoveries.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3870">SOLR-3870</a>: SyncStrategy should have a close so it can abort earlier on
+shutdown.
+<br /><span class="attrib">(Mark Miller)</span></li>
+    </ol>
+  </li>
+</ul>
+<h2><a id="older" href="javascript:toggleList('older')">Older Releases</a></h2>
+<ul id="older.list">
+<h3><a id="4.0.0-beta" href="javascript:toggleList('4.0.0-beta')">Release 4.0.0-BETA  [2012-08-13]</a></h3>
+<ul id="4.0.0-beta.list">
+  <li><a id="4.0.0-beta.versions_of_major_components" href="javascript:toggleList('4.0.0-beta.versions_of_major_components')">Versions of Major Components</a>&nbsp;&nbsp;&nbsp;(5)
+    <ol id="4.0.0-beta.versions_of_major_components.list">
+      <li>Apache Tika 1.1
+</li>
+      <li>Carrot2 3.5.0
+</li>
+      <li>Velocity 1.6.4 and Velocity Tools 2.0
+</li>
+      <li>Apache UIMA 2.3.1
+</li>
+      <li>Apache ZooKeeper 3.3.6
+</li>
+    </ol>
+  </li>
+  <li><a id="4.0.0-beta.upgrading_from_solr_4.0.0-alpha" href="javascript:toggleList('4.0.0-beta.upgrading_from_solr_4.0.0-alpha')">Upgrading from Solr 4.0.0-ALPHA</a>&nbsp;&nbsp;&nbsp;(1)
+    <ol id="4.0.0-beta.upgrading_from_solr_4.0.0-alpha.list">
+      <li>Solr is now much more strict about requiring that the uniqueKeyField feature
+(if used) must refer to a field which is not multiValued.  If you upgrade from
+an earlier version of Solr and see an error that your uniqueKeyField "can not
+be configured to be multivalued" please add 'multiValued="false"' to the
+&lt;field /&gt; declaration for your uniqueKeyField.  See <a href="http://issues.apache.org/jira/browse/SOLR-3682">SOLR-3682</a> for more details.
+</li>
+    </ol>
+  </li>
+  <h4>Detailed Change List</h4>
+  <li><a id="4.0.0-beta.new_features" href="javascript:toggleList('4.0.0-beta.new_features')">New Features</a>&nbsp;&nbsp;&nbsp;(15)
+    <ol id="4.0.0-beta.new_features.list">
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4201">LUCENE-4201</a>: Added JapaneseIterationMarkCharFilterFactory to normalize Japanese
+iteration marks.
+<br /><span class="attrib">(Robert Muir, Christian Moen)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-1856">SOLR-1856</a>: In Solr Cell, literals should override Tika-parsed values.
+Patch adds a param "literalsOverride" which defaults to true, but can be set
+to "false" to let Tika-parsed values be appended to literal values
+<br /><span class="attrib">(Chris Harris, janhoy)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3488">SOLR-3488</a>: Added a Collection management API for SolrCloud.
+<br /><span class="attrib">(Tommaso Teofili, Sami Siren, yonik, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3559">SOLR-3559</a>: Full deleteByQuery support with SolrCloud distributed indexing.
+All replicas of a shard will be consistent, even if updates arrive in a
+different order on different replicas.
+<br /><span class="attrib">(yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-1929">SOLR-1929</a>: Index encrypted documents with ExtractingUpdateRequestHandler.
+By supplying resource.password=&lt;mypw&gt; or specifying an external file with regular
+expressions matching file names, Solr will decrypt and index PDFs and DOCX formats.
+<br /><span class="attrib">(janhoy, Yiannis Pericleous)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3562">SOLR-3562</a>: Add options to remove instance dir or data dir on core unload.
+<br /><span class="attrib">(Mark Miller, Per Steffensen)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-2702">SOLR-2702</a>: The default directory factory was changed to NRTCachingDirectoryFactory
+which wraps the StandardDirectoryFactory and caches small files for improved
+Near Real-time (NRT) performance.
+<br /><span class="attrib">(Mark Miller, yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-2616">SOLR-2616</a>: Include a sample java util logging configuration file.
+<br /><span class="attrib">(David Smiley, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3460">SOLR-3460</a>: Add cloud-scripts directory and a zkcli.sh|bat tool for easy scripting
+and interaction with ZooKeeper.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-1725">SOLR-1725</a>: StatelessScriptUpdateProcessorFactory allows users to implement
+the full ScriptUpdateProcessor API using any scripting language with a
+javax.script.ScriptEngineFactory
+<br /><span class="attrib">(Uri Boness, ehatcher, Simon Rosenthal, hossman)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-139">SOLR-139</a>: Change to updateable documents to create the document if it doesn't
+already exist.  To assert that the document must exist, use the optimistic
+concurrency feature by specifying a _version_ of 1.
+<br /><span class="attrib">(yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-2510">LUCENE-2510</a>, <a href="http://issues.apache.org/jira/browse/LUCENE-4044">LUCENE-4044</a>: Migrated Solr's Tokenizer-, TokenFilter-, and
+CharFilterFactories to the lucene-analysis module. To add new analysis
+modules to Solr (like ICU, SmartChinese, Morfologik,...), just drop in
+the JAR files from Lucene's binary distribution into your Solr instance's
+lib folder. The factories are automatically made available with SPI.
+<br /><span class="attrib">(Chris Male, Robert Muir, Uwe Schindler)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3634">SOLR-3634</a>, <a href="http://issues.apache.org/jira/browse/SOLR-3635">SOLR-3635</a>: CoreContainer and CoreAdminHandler will now remember
+and report back information about failures to initialize SolrCores.  These
+failures will be accessible from the web UI and CoreAdminHandler STATUS
+command until they are "reset" by creating/renaming a SolrCore with the
+same name.
+<br /><span class="attrib">(hossman, steffkes)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-1280">SOLR-1280</a>: Added commented-out example of the new script update processor
+to the example configuration.  See <a href="http://wiki.apache.org/solr/ScriptUpdateProcessor">http://wiki.apache.org/solr/ScriptUpdateProcessor</a>
+<br /><span class="attrib">(ehatcher)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3672">SOLR-3672</a>: SimplePostTool: Improvements for posting files
+Support for auto mode, recursive and wildcards
+<br /><span class="attrib">(janhoy)</span></li>
+    </ol>
+  </li>
+  <li><a id="4.0.0-beta.optimizations" href="javascript:toggleList('4.0.0-beta.optimizations')">Optimizations</a>&nbsp;&nbsp;&nbsp;(3)
+    <ol id="4.0.0-beta.optimizations.list">
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3708">SOLR-3708</a>: Add hashCode to ClusterState so that structures built based on the
+ClusterState can be easily cached.
+<br /><span class="attrib">(Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3709">SOLR-3709</a>: Cache the url list created from the ClusterState in CloudSolrServer on each
+request.
+<br /><span class="attrib">(Mark Miller, yonik)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3710">SOLR-3710</a>: Change CloudSolrServer so that update requests are only sent to leaders by
+default.
+<br /><span class="attrib">(Mark Miller)</span></li>
+    </ol>
+  </li>
+  <li><a id="4.0.0-beta.bug_fixes" href="javascript:toggleList('4.0.0-beta.bug_fixes')">Bug Fixes</a>&nbsp;&nbsp;&nbsp;(22)
+    <ol id="4.0.0-beta.bug_fixes.list">
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3582">SOLR-3582</a>: Our ZooKeeper watchers respond to session events as if they are change events,
+creating undesirable side effects.
+<br /><span class="attrib">(Trym R. Møller, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3467">SOLR-3467</a>: ExtendedDismax escaping is missing several reserved characters
+<br /><span class="attrib">(Michael Dodsworth via janhoy)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3587">SOLR-3587</a>: After reloading a SolrCore, the original Analyzer is still used rather than a new
+one.
+<br /><span class="attrib">(Alexey Serba, yonik, rmuir, Mark Miller)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/LUCENE-4185">LUCENE-4185</a>: Fix a bug where CharFilters were wrongly being applied twice.
+<br /><span class="attrib">(Michael Froh, rmuir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3610">SOLR-3610</a>: After reloading a core, indexing would fail on any newly added fields to the schema.
+<br /><span class="attrib">(Brent Mills, rmuir)</span></li>
+      <li><a href="http://issues.apache.org/jira/browse/SOLR-3377">SOLR-3377</a>: edismax fails to correctly parse a fielded query wrapped by parens.
+This regression was introduced in 3.6.

[... 5068 lines stripped ...]