Professional Documents
Culture Documents
Introduction
------------
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 Jetty.
Getting Started
---------------
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 http://lucene.apache.org/solr/tutorial.html
Bug Fixes
----------------------
* SOLR-5442: Python client cannot parse proxied response when served by Tomcat.
(Patrick Hunt, Gregory Chanan, Vamsee Yarlagadda, Romain Rigaux, Mark Miller)
* SOLR-5445: Proxied responses should propagate all headers rather than the
first one for each key. (Patrick Hunt, Mark Miller)
* SOLR-5577: Likely ZooKeeper expiration should not slow down updates a given
amount, but instead cut off updates after a given time.
(Mark Miller, Christine Poerschke, Ramkumar Aiyengar)
* SOLR-5580: NPE when creating a core with both explicit shard and coreNodeName.
(YouPeng Yang, Mark Miller)
* SOLR-5552: Leader recovery process can select the wrong leader if all replicas
for a shard are down and trying to recover as well as lose updates that should
have been recovered. (Timothy Potter, Mark Miller)
* SOLR-5569 A replica should not try and recover from a leader until it has
published that it is ACTIVE. (Mark Miller)
* SOLR-5568 A SolrCore cannot decide to be the leader just because the cluster
state says no other SolrCore's are active. (Mark Miller)
* SOLR-4709: The core reload after replication if config files have changed
can fail due to a race condition. (Mark Miller, Hossman))
* SOLR-5645: A SolrCore reload via the CoreContainer will try and register in
zk again with the new SolrCore. (Mark Miller)
Optimizations
----------------------
New Features
----------------------
* SOLR-5226: Add Lucene index heap usage to the Solr admin UI.
(Areek Zillur via Robert Muir)
* SOLR-5324: Make sub shard replica recovery and shard state switch asynchronous.
(Yago Riveiro, shalin)
* SOLR-5353: Enhance CoreAdmin api to split a route key's documents from an index
and leave behind all other documents. (shalin)
* SOLR-5084: new field type EnumField. (Elran Dvir via Erick Erickson)
Bug Fixes
----------------------
* SOLR-5363: Solr doesn't start up properly with Log4J2 (Petar Tahchiev via Alan
Woodward)
* SOLR-5418: Background merge after field removed from solr.xml causes error.
(Reported on user's list, Robert M's patch via Erick Erickson)
* SOLR-5318: Creating a core via the admin API doesn't respect transient property
(Olivier Soyez via Erick Erickson)
* SOLR-5388: Creating a new core via the HTTP API that results in a transient being
unloaded results in a " Too many close [count:-1]" error.
(Olivier Soyez via Erick Erickson)
Optimizations
----------------------
* SOLR-5223: SolrCloud should use the JavaBin binary format for communication by
default.
(Mark Miller)
Security
----------------------
Other Changes
----------------------
* SOLR-5237: Add indexHeapUsageBytes to LukeRequestHandler, indicating how much
heap memory is being used by the underlying Lucene index structures.
(Areek Zillur via Robert Muir)
* SOLR-5319: Remove unused and incorrect router name from Collection ZK nodes.
(Jessica Cheng via shalin)
Bug Fixes
----------------------
* SOLR-4590: Collections API should return a nice error when not in SolrCloud mode.
(Anshum Gupta, Mark Miller)
* SOLR-5263: Fix CloudSolrServer URL cache update race. (Jessica Cheng, Mark
Miller)
* SOLR-5255: Remove unnecessary call to fetch and watch live nodes in ZkStateReader
cluster watcher. (Jessica Cheng via shalin)
* SOLR-5314: Shard split action should use soft commits instead of hard commits
to make sub shard data visible. (Kalle Aaltonen, shalin)
* SOLR-5327: SOLR-4915, "The root cause should be returned to the user when a
SolrCore create
call fails", was reverted. (Mark Miller)
* SOLR-5325: ZooKeeper connection loss can cause the Overseer to stop processing
commands. (Christine Poerschke, Mark Miller, Jessica Cheng)
Other Changes
----------------------
* XML configuration parsing is now more strict about situations where a single
setting is allowed but multiple values are found. In the past, one value
would be chosen arbitrarily and silently. Starting with 4.5, configuration
parsing will fail with an error in situations like this. If you see error
messages such as "solrconfig.xml contains more than one value for config path:
XXXXX" or "Found Z configuration sections when at most 1 is allowed matching
expression: XXXXX" check your solrconfig.xml file for multiple occurrences of
XXXXX and delete the ones that you do not wish to use. See SOLR-4953 &
SOLR-5108 for more details.
* CloudSolrServer can now use multiple threads to add documents by default. This is
a
small change in runtime semantics when using the bulk add method - you will still
end up with the same exception on a failure, but some documents beyond the one
that
failed may have made it in. To get the old, single threaded behavior, set
parallel updates
to false on the CloudSolrServer instance.
New Features
----------------------
* SOLR-2345: Enhanced geodist() to work with an RPT field, provided that the
field is referenced via 'sfield' and the query point is constant.
(David Smiley)
* SOLR-4222: create custom sharded collection via collections API (Noble Paul)
* SOLR-4816: CloudSolrServer can now route updates locally and no longer relies on
inter-node
update forwarding. (Joel Bernstein, Shikhar Bhushan, Stephen Riesenberg, Mark
Miller)
Bug Fixes
----------------------
* SOLR-5121: zkcli usage help for makepath doesn't match actual command.
(Daniel Collins via Mark Miller)
* SOLR-5119: Managed schema problems after adding fields via Schema Rest API.
(Nils Kübler, Steve Rowe)
* SOLR-4764: When using NRT, just init the first reader from IndexWriter.
(Robert Muir, Mark Miller)
* SOLR-5171: SOLR Admin gui works in IE9, breaks in IE10. (Joseph L Howard via
steffkes)
* SOLR-4817 Solr should not fall back to the back compat built in solr.xml in
SolrCloud
mode (Erick Erickson)
* SOLR-5112: Show full message in Admin UI Logging View (Matthew Keeney via
steffkes)
* SOLR-5231: Fixed a bug with the behavior of BoolField that caused documents w/o
a value for the field to act as if the value were true in functions if no other
documents in the same index segment had a value of true.
(Robert Muir, hossman, yonik)
* SOLR-5233: The "deleteshard" collections API doesn't wait for cluster state to
update,
can fail if some nodes of the deleted shard were down and had incorrect logging.
(Christine Poerschke, shalin)
* SOLR-5150: HdfsIndexInput may not fully read requested bytes. (Mark Miller,
Patrick Hunt)
* SOLR-5240: All solr cores will now be loaded in parallel (as opposed to a fixed
number)
in zookeeper mode to avoid deadlocks due to replicas waiting for other replicas
to come up. (yonik)
* SOLR-5291: Solrj does not propagate the root cause to the user for many errors.
(Mark Miller)
Optimizations
----------------------
* SOLR-5057: QueryResultCache should not related with the order of fq's list
(Feihong Huang via Erick Erickson)
Other Changes
----------------------
* SOLR-4914, SOLR-5162: Factor out core list persistence and discovery into a
new CoresLocator interface. (Alan Woodward, Shawn Heisey)
* LUCENE-5063: ByteField and ShortField have been deprecated and will be removed
in 5.0. If you are still using these field types, you should migrate your
fields to TrieIntField.
New Features
----------------------
* SOLR-3251: Dynamically add fields to schema. (Steve Rowe, Robert Muir, yonik)
* SOLR-4761, SOLR-4976: Add option to plugin a merged segment warmer into
solrconfig.xml.
Info about segments warmed in the background is available via infostream.
(Mark Miller, Ryan Ernst, Mike McCandless, Robert Muir)
* SOLR-4234: Add support for binary files in ZooKeeper. (Eric Pugh via Mark Miller)
* SOLR-4228: SolrJ's SolrPing object has new methods for ping, enable, and
disable. (Shawn Heisey, hossman, Steve Rowe)
* SOLR-4916: Add support to write and read Solr index files and transaction log
files to and from HDFS. (phunt, Mark Miller, Greg Chanan)
* SOLR-4972: Add PUT command to ZkCli tool. (Roman Shaposhnik via Mark Miller)
* SOLR-4655: Add option to have Overseer assign generic node names so that
new addresses can host shards without naming confusion. (Mark Miller, Anshum
Gupta)
* SOLR-4977: Add option to send IndexWriter's infostream to the logging system.
(Ryan Ernst via Robert Muir)
* SOLR-5003: CSV Update Handler supports optionally adding the line number/row id
to
a document (gsingers)
* SOLR-5010: Add support for creating copy fields to the Schema REST API (gsingers)
* SOLR-4943: Add a new system wide info admin handler that exposes the system info
that could previously only be retrieved using a SolrCore. (Mark Miller)
Bug Fixes
----------------------
* SOLR-4803: Fixed core discovery mode (ie: new style solr.xml) to treat
'collection1' as the default core name. (hossman)
* SOLR-4790: Throw an error if a core has the same name as another core, both old
and
new style solr.xml
* SOLR-4805: SolreCore#reload should not call preRegister and publish a DOWN state
to
ZooKeeper. (Mark Miller, Jared Rodriguez)
* SOLR-4915: The root cause should be returned to the user when a SolrCore create
call fails.
(Mark Miller)
* SOLR-4925 : Collection create throws NPE when 'numShards' param is missing (Noble
Paul)
* SOLR-4923: Commits to non leaders as part of a request that also contain updates
can execute out of order. (hossman, Ricardo Merizalde, Mark Miller)
* SOLR-4926: Fixed rare replication bug that normally only manifested when
using compound file format. (yonik, Mark Miller)
* SOLR-4974: Outgrowth of SOLR-4960 that includes transient cores and pending cores
(Erick Erickson)
* SOLR-4978: Time is stripped from datetime column when imported into Solr date
field
if convertType=true. (Bill Au, shalin)
* SOLR-5018: The Overseer should avoid publishing the state for collections that do
not
exist under the /collections zk node. (Mark Miller)
* SOLR-4997: The splitshard api doesn't call commit on new sub shards before
switching shard states. Multiple bugs related to sub shard recovery and
replication are also fixed. (shalin)
* SOLR-5037: The CSV loader now accepts field names that are not in the schema.
(gsingers, ehatcher, Steve Rowe)
* SOLR-4791: solr.xml sharedLib does not work in 4.3.0 (Ryan Ernst, Jan Høydahl via
Erick Erickson)
Optimizations
----------------------
* SOLR-4955: Admin UI - Show address bar on top for Schema + Config (steffkes)
* SOLR-5012: optimize search with filter when filterCache is null (Robert Muir)
Other Changes
----------------------
* SOLR-4749: Clean up and refactor CoreContainer code around solr.xml and SolrCore
management. (Mark Miller)
* SOLR-4757: Change the example to use the new solr.xml format and core
discovery by directory structure. (Mark Miller)
* SOLR-4759: Velocity (/browse) template cosmetic cleanup.
(Mark Bennett, ehatcher)
* SOLR-4448: Allow the solr internal load balancer to be more easily pluggable.
(Philip Hoy via Robert Muir)
Bug Fixes
----------------------
* SOLR-4795: Sub shard leader should not accept any updates from parent after
it goes active (shalin)
* SOLR-4798: shard splitting does not respect the router for the collection
when executing the index split. One effect of this is that documents
may be placed in the wrong shard when the default compositeId router
is used in conjunction with IDs containing "!". (yonik)
* SOLR-4797: Shard splitting creates sub shards which have the wrong hash
range in cluster state. This happens when numShards is not a power of two
and router is compositeId. (shalin)
* SOLR-4806: Shard splitting does not abort if WaitForState times out (shalin)
* SOLR-4807: The zkcli script now works with log4j. The zkcli.bat script
was broken on Windows in 4.3.0, now it works. (Shawn Heisey)
* SOLR-4829: Fix transaction log leaks (a failure to clean up some old logs)
on a shard leader, or when unexpected exceptions are thrown during log
recovery. (Steven Bower, Mark Miller, yonik)
* SOLR-4752: There are some minor bugs in the Collections API parameter
validation. (Mark Miller)
* SOLR-4796: zkcli.sh should honor JAVA_HOME (Roman Shaposhnik via Mark Miller)
* SOLR-4868: Setting the log level for the log4j root category results in
adding a new category, the empty string. (Shawn Heisey)
Other Changes
----------------------
* In the schema REST API, the output path for copyFields and dynamicFields
has been changed from all lowercase "copyfields" and "dynamicfields" to
camelCase "copyFields" and "dynamicFields", respectively, to align with all
other schema REST API outputs, which use camelCase. The URL format remains
the same: all resource names are lowercase. See SOLR-4623 for details.
* Slf4j/logging jars are no longer included in the Solr webapp. All logging
jars are now in example/lib/ext. Changing logging impls is now as easy as
updating the jars in this folder with those necessary for the logging impl
you would like. If you are using another webapp container, these jars will
need to go in the corresponding location for that container.
In conjunction, the dist-excl-slf4j and dist-war-excl-slf4 build targets
have been removed since they are redundent. See the Slf4j documentation,
SOLR-3706, and SOLR-4651 for more details.
New Features
----------------------
* SOLR-4623: Provide REST API read access to all elements of the live schema.
Add a REST API request to return the entire live schema, in JSON, XML, and
schema.xml formats. Move REST API methods from package org.apache.solr.rest
to org.apache.solr.rest.schema, and rename base functionality REST API
classes to remove the current schema focus, to prepare for other non-schema
REST APIs. Change output path for copyFields and dynamicFields from
"copyfields" and "dynamicfields" (all lowercase) to "copyFields" and
"dynamicFields", respectively, to align with all other REST API outputs, which
use camelCase.
(Steve Rowe)
* SOLR-4658: In preparation for REST API requests that can modify the schema,
a "managed schema" is introduced.
Add '<schemaFactory class="ManagedSchemaFactory" mutable="true"/>' to
solrconfig.xml
in order to use it, and to enable schema modifications via REST API requests.
(Steve Rowe, Robert Muir)
Bug Fixes
----------------------
* SOLR-4634: Fix scripting engine tests to work with Java 8's "Nashorn" Javascript
implementation. (Uwe Schindler)
* SOLR-4405: Admin UI - admin-extra files are not rendered into the core-menu
(steffkes)
* SOLR-4650: copyField doesn't work with source globs that don't match any
explicit or dynamic fields. This regression was introduced in Solr 4.2.
(Daniel Collins, Steve Rowe)
* SOLR-4652: Fix broken behavior with shared libraries in resource loader for
solr.xml plugins. (Ryan Ernst, Robert Muir, Uwe Schindler)
* SOLR-4699: The System admin handler should not assume a file system based data
directory
location. (Mark Miller)
* SOLR-4695: Fix core admin SPLIT action to be useful with non-cloud setups
(shalin)
* SOLR-4702: Fix example /browse "Did you mean?" suggestion feature. (ehatcher,
Mark Bennett)
* SOLR-4710: You cannot delete a collection fully from ZooKeeper unless all nodes
are up and
functioning correctly. (Mark Miller)
* SOLR-4705: Fixed bug causing NPE when querying a single replica in SolrCloud
using the shards param (Raintung Li, hossman)
Optimizations
----------------------
Other Changes
----------------------
* SOLR-4607: Use noggit 0.5 release jar rather than a forked copy. (Yonik Seeley,
Robert Muir)
* SOLR-4730: Make the wiki link more prominent in the release documentation.
(Uri Laserson via Robert Muir)
Bug Fixes
----------------------
* SOLR-4475: Fix various places that still assume File based paths even when
not using a file based DirectoryFactory. (Mark Miller)
* SOLR-4585: The Collections API validates numShards with < 0 but should use
<= 0. (Mark Miller)
* SOLR-4598: The Core Admin unload command's option 'deleteDataDir', should use
the DirectoryFactory API to remove the data dir. (Mark Miller)
* SOLR-4601: A Collection that is only partially created and then deleted will
leave pre allocated shard information in ZooKeeper. (Mark Miller)
* SOLR-4609: The Collections API should only send the reload command to ACTIVE
cores. (Mark Miller)
* SOLR-4318: NPE encountered with querying with wildcards on a field that uses
the DefaultAnalyzer (i.e. no analysis chain defined). (Erick Erickson)
* SOLR-4608: Update Log replay and PeerSync replay should use the default
processor chain to update the index. (Ludovic Boutros, yonik)
* SOLR-4625: The solr (lucene syntax) query parser lost top-level boost
values and top-level phrase slops on queries produced by nested
sub-parsers. (yonik)
* SOLR-4637: Replication can sometimes wait until shutdown or core unload until
removing some tmp directories. (Mark Miller)
Optimizations
----------------------
Other Changes
----------------------
New Features
----------------------
* SOLR-4488: Return slave replication details for a master if the master has
also acted like a slave. (Mark Miller)
* SOLR-4498: Add list command to ZkCLI that prints out the contents of
ZooKeeper. (Roman Shaposhnik via Mark Miller)
* SOLR-4210: Requests to a Collection that does not exist on the receiving node
should be proxied to a suitable node. (Mark Miller, Po Rui, yonik)
* SOLR-4503: Add REST API methods, via Restlet integration, for reading schema
elements, at /schema/fields/, /schema/dynamicfields/, /schema/fieldtypes/,
and /schema/copyfields/. (Steve Rowe)
Bug Fixes
----------------------
* SOLR-4321: Collections API will sometimes use a node more than once, even
when more unused nodes are available.
(Eric Falcao, Brett Hoerner, Mark Miller)
* SOLR-4225: Term info page under schema browser shows incorrect count of terms
(steffkes)
* SOLR-3926: Solr should support better way of finding active sorts (Eirik Lygre
via
Erick Erickson)
* SOLR-4380: Replicate after startup option would not replicate until the
IndexWriter was lazily opened. (Mark Miller, Gregg Donovan)
* SOLR-3655: A restarted node can briefly appear live and active before it really
is in some cases. (Mark Miller)
* SOLR-4459: The Replication 'index move' rather than copy optimization doesn't
kick in when using NRTCachingDirectory or the rate limiting feature.
(Mark Miller)
* SOLR-4469: A new IndexWriter must be opened on SolrCore reload when the index
directory has changed and the previous SolrCore's state should not be
propagated. (Mark Miller, Gregg Donovan)
* SOLR-4507: The Cloud tab does not show up in the Admin UI if you
set zkHost in solr.xml. (Alfonso Presa, Mark Miller)
Optimizations
----------------------
* SOLR-4284: Admin UI - make core list scrollable separate from the rest of
the UI (steffkes)
* SOLR-4521: Stop using the 'force' option for recovery replication. This
will keep some less common unnecessary replications from happening.
(Mark Miller, Simon Scofield)
Other Changes
----------------------
* SOLR-4259: Carrot2 dependency should be declared on the mini version, not the
core.
(Dawid Weiss).
* SOLR-4394: Tests and example configs demonstrating SSL with both server
and client certs (hossman)
* SOLR-4511: Add new test for 'repeater' replication node. (Mark Miller)
Custom java parsing plugins need to migrate from throwing the internal
ParseException to throwing SyntaxError.
New Features
----------------------
* SOLR-2255: 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. (dsmiley)
* SOLR-3911: Make Directory and DirectoryFactory first class so that the majority
of Solr's features work with any custom implementations. (Mark Miller)
Additional Work:
- SOLR-4032: Files larger than an internal buffer size fail to replicate.
(Mark Miller, Markus Jelsma)
- SOLR-4033: Consistently use the solrconfig.xml lockType everywhere.
(Mark Miller, Markus Jelsma)
- SOLR-4144: Replication using too much RAM. (yonik, Markus Jelsma)
- SOLR-4187: NPE on Directory release (Mark Miller, Markus Jelsma)
* SOLR-4088: New and improved auto host detection strategy for SolrCloud.
(Raintung Li via Mark Miller)
* SOLR-4101: Add support for storing term offsets in the index via a
'storeOffsetsWithPositions' flag on field definitions in the schema.
(Tom Winch, Alan Woodward)
* SOLR-4114: Allow creating more than one shard per instance with the
Collection API. (Per Steffensen, Mark Miller)
* SOLR-4124: You should be able to set the update log directory with the
CoreAdmin API the same way as the data directory. (Mark Miller)
* SOLR-4028: When using ZK chroot, it would be nice if Solr would create the
initial path when it doesn't exist. (Tomás Fernández Löbbe via Mark Miller)
* SOLR-4230: The new Solr 4 spatial fields now work with the {!geofilt} and
{!bbox} query parsers. The score local-param works too. (David Smiley)
* SOLR-4255: 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. (David Smiley)
* SOLR-4265, SOLR-4283: 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,... (Uwe Schindler, Dawid Weiss, Alex Rocher)
Example:
The following two documents will be indexed to the same shard
since they share the same domain "customerB!".
<code>
{"id" : "customerB!doc1" [...] }
{"id" : "customerB!doc2" [...] }
</code>
At query time, one can specify a "shard.keys" parameter that lists what
shards the query should cover.
http://.../query?q=my_query&shard.keys=customerB!
Optimizations
----------------------
* SOLR-4199: When doing zk retries due to connection loss, rather than just
retrying for 2 minutes, retry in proportion to the session timeout.
(Mark Miller)
Bug Fixes
----------------------
* SOLR-3939: Consider a sync attempt from leader to replica that fails due
to 404 a success. (Mark Miller, Joel Bernstein)
* SOLR-3940: Rejoining the leader election incorrectly triggers the code path
for a fresh cluster start rather than fail over. (Mark Miller)
* SOLR-3920: Fix server list caching in CloudSolrServer when using more than one
collection list with the same instance. (Grzegorz Sobczyk, Mark Miller)
* SOLR-3995: Recovery may never finish on SolrCore shutdown if the last reference
to
a SolrCore is closed by the recovery process. (Mark Miller)
* SOLR-3589: Edismax parser does not honor mm parameter if analyzer splits a token.
(Tom Burton-West, Robert Muir)
* SOLR-4031: Upgrade to Jetty 8.1.7 to fix a bug where in very rare occasions
the content of two concurrent requests get mixed up. (Per Steffensen, yonik)
* SOLR-4055: Fix a thread safety issue with the Collections API that could
cause actions to be targeted at the wrong SolrCores.
(Raintung Li, Per Steffensen via Mark Miller)
* SOLR-4064: When there is an unexpected exception while trying to run the new
leader process, the SolrCore will not correctly rejoin the election.
(Po Rui via Mark Miller)
* SOLR-4003: 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. (Mark Miller)
* SOLR-4075: A logical shard that has had all of it's SolrCores unloaded should
be removed from the cluster state. (Mark Miller, Gilles Comeau)
* SOLR-4097: Race can cause NPE in logging line on first cluster state update.
(Mark Miller)
* SOLR-4099: Allow the collection api work queue to make forward progress even
when it's watcher is not fired for some reason. (Raintung Li via Mark Miller)
* SOLR-3842: DIH would not populate multivalued fields if the column name
derives from a resolved variable (James Dyer)
* SOLR-4117: Retrieving the size of the index may use the wrong index dir if
you are replicating.
(Mark Miller, Markus Jelsma)
* SOLR-4159: 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. (Mark Miller)
* SOLR-4158: 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. (Mark Miller, Alain Rogister)
* SOLR-4162: ZkCli usage examples are not correct because the zkhost parameter
is not present and it is mandatory for all commands.
(Tomás Fernández Löbbe via Mark Miller)
* SOLR-4071: Validate that name is pass to Collections API create, and behave the
same way as on startup when collection.configName is not explicitly passed.
(Po Rui, Mark Miller)
* SOLR-4168: Ensure we are using the absolute latest index dir when getting
list of files for replication. (Mark Miller)
* SOLR-4178: ReplicationHandler should abort any current pulls and wait for
it's executor to stop during core close. (Mark Miller)
* SOLR-4134: Standard (XML) request writer cannot "set" multiple values into
multivalued field with partial updates. (Luis Cappa Banda, Will Butler, shalin)
* SOLR-4133: Cannot "set" field to null with partial updates when using the
standard RequestWriter. (Will Butler, shalin)
* SOLR-4244: 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. (Mark Miller)
* SOLR-4245: 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. (Mark Miller)
* SOLR-4257: PeerSync updates and Log Replay updates should not wait for
a ZooKeeper connection in order to proceed. (yonik)
* SOLR-4045: SOLR admin page returns HTTP 404 on core names containing
a '.' (dot) (steffkes)
* SOLR-4079: Long core names break web gui appearance and functionality
(steffkes)
* SOLR-4291: Harden the Overseer work queue thread loop. (Mark Miller)
* SOLR-3820: Solr Admin Query form is missing some edismax request parameters
(steffkes)
Other Changes
----------------------
* SOLR-3899: SolrCore should not log at warning level when the index directory
changes - it's an info event. (Tobias Bergman, Mark Miller)
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
<field /> declaration for your uniqueKeyField. See SOLR-3682 for more details.
In addition, please review the notes above about upgrading from 4.0.0-BETA
* 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.
* 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.
* The VelocityResponseWriter is no longer built into the core. Its JAR and
dependencies now need to be added (via <lib> or solr/home lib inclusion),
and it needs to be registered in solrconfig.xml like this:
<queryResponseWriter name="velocity" class="solr.VelocityResponseWriter"/>
* Due to low level changes to support SolrCloud, the uniqueKey field can no
longer be populated via <copyField/> or <field default=...> 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
SOLR-2796 for more details.
In addition, please review the notes above about upgrading from 4.0.0-BETA, and
4.0.0-ALPHA
New Features
----------------------
* SOLR-2768: new "mod(x,y)" function for computing the modulus of two value
sources. (hossman)
* SOLR-3597: seems like a lot of wasted whitespace at the top of the admin screens
(steffkes)
* SOLR-3304: 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.
(David Smiley)
* SOLR-3822: Added hover titles to the edismax params on the UI Query form
(steffkes)
Optimizations
----------------------
* SOLR-3837: 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. (Mark Miller)
* SOLR-3709: Cache the url list created from the ClusterState in CloudSolrServer
on each request. (Mark Miller)
Bug Fixes
----------------------
* SOLR-3685: 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. (Markus Jelsma, Mark Miller, yonik)
* SOLR-3730: Rollback is not implemented quite right and can cause corner case
fails in
SolrCloud tests. (rmuir, Mark Miller)
* SOLR-3721: Fix bug that could theoretically allow multiple recoveries to run
briefly at the same time if the recovery thread join call was interrupted.
(Per Steffensen, Mark Miller)
* SOLR-3782: A leader going down while updates are coming in can cause shard
inconsistency. (Mark Miller)
* SOLR-3611: We do not show ZooKeeper data in the UI for a node that has children.
(Mark Miller)
* SOLR-3699: Fixed some Directory leaks when there were errors during SolrCore
or SolrIndexWriter initialization. (hossman)
* SOLR-3823: Fix 'bq' parsing in edismax. Please note that this required
reverting the negative boost support added by SOLR-3278 (hossman)
* SOLR-3811: Query Form using wrong values for dismax, edismax (steffkes)
* SOLR-3833: 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. (yonik, Mark Miller)
* SOLR-3836: 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.
(Mark Miller)
* SOLR-3834: A new leader on cluster startup should also run the leader sync
process in case there was a bad cluster shutdown. (Mark Miller)
* SOLR-3813: When a new leader syncs, we need to ask all shards to sync back,
not just those that are active. (Mark Miller)
* SOLR-3844: SolrCore reload can fail because it tries to remove the index
write lock while already holding it. (Mark Miller)
Other Changes
----------------------
* SOLR-3752: When a leader goes down, have the Overseer clear the leader state
in cluster.json (Mark Miller)
* SOLR-3751: Add defensive checks for SolrCloud updates and requests that ensure
the local state matches what we can tell the request expected. (Mark Miller)
* SOLR-3773: Hash based on the external String id rather than the indexed
representation for distributed updates. (Michael Garski, yonik, Mark Miller)
* SOLR-3780: Maven build: Make solrj tests run separately from solr-core.
(Steve Rowe)
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
<field /> declaration for your uniqueKeyField. See SOLR-3682 for more details.
New Features
----------------------
* SOLR-3562: Add options to remove instance dir or data dir on core unload.
(Mark Miller, Per Steffensen)
* SOLR-3460: Add cloud-scripts directory and a zkcli.sh|bat tool for easy scripting
and interaction with ZooKeeper. (Mark Miller)
Optimizations
----------------------
* SOLR-3708: Add hashCode to ClusterState so that structures built based on the
ClusterState can be easily cached. (Mark Miller)
* SOLR-3709: Cache the url list created from the ClusterState in CloudSolrServer on
each
request. (Mark Miller, yonik)
Bug Fixes
----------------------
* SOLR-3582: Our ZooKeeper watchers respond to session events as if they are change
events,
creating undesirable side effects. (Trym R. Møller, Mark Miller)
* SOLR-3587: After reloading a SolrCore, the original Analyzer is still used rather
than a new
one. (Alexey Serba, yonik, rmuir, Mark Miller)
* LUCENE-4185: Fix a bug where CharFilters were wrongly being applied twice.
(Michael Froh, rmuir)
* SOLR-3610: After reloading a core, indexing would fail on any newly added fields
to the schema. (Brent Mills, rmuir)
* SOLR-3621: Fix rare concurrency issue when opening a new IndexWriter for
replication or rollback.
(Mark Miller)
* SOLR-3639: Update ZooKeeper to 3.3.6 for a variety of bug fixes. (Mark Miller)
* SOLR-3656: A core reload now always uses the same dataDir. (Mark Miller, yonik)
* SOLR-3662: Core reload bugs: a reload always obtained a non-NRT searcher, which
could go back in time with respect to the previous core's NRT searcher.
Versioning
did not work correctly across a core reload, and update handler synchronization
was changed to synchronize on core state since more than on update handler
can coexist for a single index during a reload. (yonik)
* SOLR-3663: There are a couple of bugs in the sync process when a leader goes down
and a
new leader is elected. (Mark Miller)
* SOLR-3647: DistributedQueue should use our Solr zk client rather than the std zk
client. ZooKeeper expiration can be permanent otherwise. (Mark Miller)
Other Changes
----------------------
* SOLR-1770: Move the default core instance directory into a collection1 folder.
(Mark Miller)
* SOLR-3355: Add shard and collection to SolrCore statistics. (Michael Garski, Mark
Miller)
* SOLR-3563: Unloading all cores in a SolrCloud collection will now cause the
removal of
that collection's meta data from ZooKeeper. (Mark Miller, Per Steffensen)
* SOLR-3439: Make SolrCell easier to use out of the box. Also improves "/browse" to
display
rich-text documents correctly, along with facets for author and content_type.
With the new "content" field, highlighting of body is supported. See also SOLR-
3672 for
easier posting of a whole directory structure. (Jack Krupansky, janhoy)
* SOLR-3579: SolrCloud view should default to the graph view rather than tree view.
(steffkes, Mark Miller)
* 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.
* 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.
* The VelocityResponseWriter is no longer built into the core. Its JAR and
dependencies now need to be added (via <lib> or solr/home lib inclusion),
and it needs to be registered in solrconfig.xml like this:
<queryResponseWriter name="velocity" class="solr.VelocityResponseWriter"/>
* Due to low level changes to support SolrCloud, the uniqueKey field can no
longer be populated via <copyField/> or <field default=...> 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
SOLR-2796 for more details.
New Features
----------------------
* SOLR-1665: Add debug component options for timings, results and query info only
(gsingers, hossman, yonik)
* SOLR-2193, SOLR-2565: You may now specify a 'soft' commit when committing. This
will
use Lucene's NRT feature to avoid guaranteeing documents are on stable storage in
exchange
for faster reopen times. There is also a new 'soft' autocommit tracker that can
be
configured. (Mark Miller, Robert Muir)
* SOLR-2399: Updated Solr Admin interface. New look and feel with per core
administration
and many new options. (Stefan Matheis via ryan)
* SOLR-2703: Added support for Lucene's "surround" query parser. (Simon Rosenthal,
ehatcher)
* SOLR-2906: Added LFU cache options to Solr. (Shawn Heisey via Erick Erickson)
* SOLR-3120: Optional post filtering for spatial queries bbox and geofilt
for LatLonType. (yonik)
* SOLR-3278: Negative boost support to the Extended Dismax Query Parser Boost Query
(bq).
(James Dyer)
* SOLR-3358: Logging events are captured and available from the /admin/logging
request handler. (ryan)
* SOLR-2690: New support for a "TZ" request param which overrides the TimeZone
used when rounding Dates in DateMath expressions for the entire request
(all date range queries and date faceting is affected). The default TZ
is still UTC. (David Schlotfeldt, hossman)
* SOLR-3402: Analysis Factories are now configured with their Lucene Version
throw setLuceneMatchVersion, rather than through the Map passed to init.
Parsing and simple error checking for the Version is now done inside
the code that creates the Analysis Factories. (Chris Male)
* SOLR-3495: New UpdateProcessors have been added to create default values for
configured fields. These works similarly to the <field default="..."/>
option in schema.xml, but are applied in the UpdateProcessorChain, so they
may be used prior to other UpdateProcessors, or to generate a uniqueKey field
value when using the DistributedUpdateProcessor (ie: SolrCloud)
TimestampUpdateProcessorFactory
UUIDUpdateProcessorFactory
DefaultValueUpdateProcessorFactory
(hossman)
Optimizations
----------------------
* SOLR-2193, SOLR-2565: The default Solr update handler has been improved so
that it uses fewer locks, keeps the IndexWriter open rather than closing it
on each commit (ie commits no longer wait for background merges to complete),
works with SolrCore to provide faster 'soft' commits, and has an improved API
that requires less instanceof special casing. (Mark Miller, Robert Muir)
Additional Work:
- SOLR-2697: commit and autocommit operations don't reset
DirectUpdateHandler2.numDocsPending stats attribute.
(Alexey Serba, Mark Miller)
Bug Fixes
----------------------
* SOLR-3139: Make ConcurrentUpdateSolrServer send UpdateRequest.getParams()
as HTTP request params (siren)
* SOLR-2108: Fixed false positives when using wildcard queries on fields with
reversed
wildcard support. For example, a query of *zemog* would match documents that
contain
'gomez'. (Landon Kuhn via Robert Muir)
* SOLR-2654: Directorys used by a SolrCore are now closed when they are no longer
used.
(Mark Miller)
* SOLR-2854: Now load URL content stream data (via stream.url) when called for
during request handling,
rather than loading URL content streams automatically regardless of use.
(David Smiley and Ryan McKinley via ehatcher)
* SOLR-3037: When using binary format in solrj the codec screws up parameters
(Sami Siren, Jörg Maier via yonik)
* SOLR-3062: A join in the main query was not respecting any filters pushed
down to it via acceptDocs since LUCENE-1536. (Mike Hugo, yonik)
* SOLR-3214: If you use multiple fl entries rather than a comma separated list, all
but the first
entry can be ignored if you are using distributed search. (Tomás Fernández Löbbe
via Mark Miller)
* SOLR-3352: eDismax: pf2 should kick in for a query with 2 terms (janhoy)
* SOLR-3436: Group count incorrect when not all shards are queried in the second
pass. (Francois Perron, Martijn van Groningen)
* SOLR-3454: Exception when using result grouping with main=true and using
wt=javabin. (Ludovic Boutros, Martijn van Groningen)
* SOLR-3430: Added a new DIH test against a real SQL database. Fixed problems
revealed by this new test related to the expanded cache support added to
3.6/SOLR-2382 (James Dyer)
* SOLR-4289: Admin UI - JVM memory bar - dark grey "used" width is too small
(steffkes, elyograg)
Other Changes
----------------------
* SOLR-1889: The default logic for the 'mm' param of DismaxQParser and
ExtendedDismaxQParser has been changed to be determined based on the
effective value of the 'q.op' param (hossman)
* SOLR-2289: Tweak spatial coords for example docs so they are a bit
more spread out (Erick Erickson via hossman)
* SOLR-2654: The same Directory instance is now always used across a SolrCore so
that
it's easier to add other DirectoryFactory's without static caching hacks.
(Mark Miller)
* LUCENE-3286: 'luke' ant target has been disabled due to incompatibilities with
XML
queryparser location (Chris Male)
* SOLR-1897: The data dir from the core descriptor should override the data dir
from
the solrconfig.xml rather than the other way round. (Mark Miller)
* SOLR-3202, SOLR-3244: Dropping Support for JSP. New Admin UI is all client side
(ryan, Aliaksandr Zhuhrou, Uwe Schindler)
* SOLR-1893: Refactored some common code from LRUCache and FastLRUCache into
SolrCacheBase (Tomás Fernández Löbbe via hossman)
* SOLR-3403: Deprecated Analysis Factories now log their own deprecation messages.
No logging support is provided by Factory parent classes. (Chris Male)
* SOLR-3083: JMX beans now report Numbers as numeric values rather then String
(Tagged Siteops, Greg Bowyer via ryan)
Documentation
----------------------
Bug Fixes
----------------------
* SOLR-3790: ConcurrentModificationException could be thrown when using hl.fl=*.
(yonik, koji)
* SOLR-3589: Edismax parser does not honor mm parameter if analyzer splits a token.
(Tom Burton-West, Robert Muir)
Bug Fixes
* LUCENE-3969: Throw IAE on bad arguments that could cause confusing errors in
PatternTokenizer. CommonGrams populates PositionLengthAttribute correctly.
(Uwe Schindler, Mike McCandless, Robert Muir)
* SOLR-3436: Group count incorrect when not all shards are queried in the second
pass. (Francois Perron, Martijn van Groningen)
* SOLR-3454: Exception when using result grouping with main=true and using
wt=javabin. (Ludovic Boutros, Martijn van Groningen)
* SOLR-3489: Config file replication less error prone (Jochen Just via janhoy)
* SOLR-3477: SOLR does not start up when no cores are defined (Tomás Fernández
Löbbe via tommaso)
* SOLR-3360: More DIH bug fixes for the deprecated "threads" parameter.
(Mikhail Khludnev, Claudio R, via James Dyer)
* SOLR-3430: Added a new DIH test against a real SQL database. Fixed problems
revealed by this new test related to the expanded cache support added to
3.6/SOLR-2382 (James Dyer)
* In Solr version 3.5 and earlier, HTMLStripCharFilter had known bugs in the
character offsets it provided, triggering e.g. exceptions in highlighting.
HTMLStripCharFilter has been re-implemented, addressing this and other
issues. See the entry for LUCENE-3690 in the Bug Fixes section below for a
detailed list of changes. For people who depend on the behavior of
HTMLStripCharFilter in Solr version 3.5 and earlier: the old implementation
(bugs and all) is preserved as LegacyHTMLStripCharFilter.
* SOLR-3040: The DIH's admin UI (dataimport.jsp) now requires DIH request handlers
to start with
a '/'. (dsmiley)
* SOLR-3161: Don't use the 'qt' parameter with a leading '/'. It probably won't
work in 4.0
and it's now limited in 3.6 to SearchHandler subclasses that aren't lazy-loaded.
New Features
----------------------
* SOLR-2020: Add Java client that uses Apache Http Components http client (4.x).
(Chantal Ackermann, Ryan McKinley, Yonik Seeley, siren)
* SOLR-2854: Now load URL content stream data (via stream.url) when called for
during request handling,
rather than loading URL content streams automatically regardless of use.
(David Smiley and Ryan McKinley via ehatcher)
* SOLR-2919: Added support for localized range queries when the analysis chain uses
CollationKeyFilter or ICUCollationKeyFilter. (Michael Sokolov, rmuir)
* SOLR-2906: Added LFU cache options to Solr. (Shawn Heisey via Erick Erickson)
* SOLR-1729: Evaluation of NOW for date math is done only once per request for
consistency, and is also propagated to shards in distributed search.
Adding a parameter NOW=<time_in_ms> to the request will override the
current time. (Peter Sturge, yonik, Simon Willnauer)
* SOLR-2202: Currency FieldType, whith support for currencies and exchange rates
(Greg Fodor & Andrew Morrison via janhoy, rmuir, Uwe Schindler)
* SOLR-3026: eDismax: Locking down which fields can be explicitly queried (user
fields aka uf)
(janhoy, hossmann, Tomás Fernández Löbbe)
* SOLR-2001: The query component will substitute an empty query that matches
no documents if the query parser returns null. This also prevents an
exception from being thrown by the default parser if "q" is missing. (yonik)
- SOLR-435: if q is "" then it's also acceptable. (dsmiley, hoss)
* SOLR-2346: Add a chance to set content encoding explicitly via content type
of stream for extracting request handler. This is convenient when Tika's
auto detector cannot detect encoding, especially the text file is too short
to detect encoding. (koji)
* SOLR-1499: Added SolrEntityProcessor that imports data from another Solr core
or instance based on a specified query.
(Lance Norskog, Erik Hatcher, Pulkit Singhal, Ahmet Arslan, Luca Cavanna,
Martijn van Groningen)
* SOLR-2382: Added pluggable cache support to DIH so that any Entity can be
made cache-able by adding the "cacheImpl" parameter. Include
"SortedMapBackedCache" to provide in-memory caching (as previously this was
the only option when using CachedSqlEntityProcessor). Users can provide
their own implementations of DIHCache for other caching strategies.
Deprecate CachedSqlEntityProcessor in favor of specifing "cacheImpl" with
SqlEntityProcessor. Make SolrWriter implement DIHWriter and allow the
possibility of pluggable Writers (DIH writing to something other than Solr).
(James Dyer, Noble Paul)
Optimizations
----------------------
* SOLR-1931: Speedup for LukeRequestHandler and admin/schema browser. New parameter
reportDocCount defaults to 'false'. Old behavior still possible by specifying
this as 'true'
(Erick Erickson)
Bug Fixes
----------------------
* SOLR-3187 SystemInfoHandler leaks filehandles (siren)
* SOLR-1730: Made it clearer when a core failed to load as well as better logging
when the
QueryElevationComponent fails to properly initialize (gsingers)
* SOLR-2542: Fixed DIH Context variables which were broken for all scopes other
then SCOPE_ENTITY (Linbin Chen & Frank Wesemann via hossman)
* SOLR-2280: commitWithin ignored for a delete query (Juan Grande via janhoy)
* SOLR-3073: Fixed 'Invalid UUID string' error when having an UUID field as
the unique key and executing a distributed grouping request. (Devon Krisman,
Martijn van Groningen)
* SOLR-2124: Do not log stack traces for "Service Disabled" / 503 Exceptions
(PingRequestHandler, etc)
(James Dyer, others)
* SOLR-3260: DataImportHandler: ScriptTransformer gives better error messages when
problems arise on initalization (no Script Engine, invalid script, etc). (James
Dyer)
* SOLR-2959: edismax now respects the magic fields '_val_' and '_query_'
(Michael Watts, hossman)
* SOLR-3316: Distributed grouping failed when rows parameter was set to 0 and
sometimes returned a wrong hit count as matches. (Cody Young, Martijn van
Groningen)
Other Changes
----------------------
* SOLR-2922: Upgrade commons-io and commons-lang to 2.1 and 2.6, respectively.
(koji)
* SOLR-3032: Deprecate logOnce from SolrException logOnce and all the supporting
structure will disappear in 4.0. Errors should be caught and logged at the
top-most level or logged and NOT propagated up the chain. (Erick Erickson)
* SOLR-3059: Example XSL stylesheet for indexing query result XML (janhoy)
* SOLR-3140: Upgrade schema version to 1.5, where omitNorms defaults to "true" for
all
primitive (non-analyzed) field types such as int, float, date, bool, string..
(janhoy)
* SOLR-3077: Better error messages when attempting to use "blank" field names
(Antony Stubbs via hossman)
* SOLR-3295: netcdf jar is excluded from the binary release (and disabled in
ivy.xml) because it requires java 6. If you want to parse this content with
extracting request handler and are willing to use java 6, just add the jar.
(rmuir)
Build
----------------------
* SOLR-2487: Add build target to package war without slf4j jars (janhoy)
* SOLR-3112: Fix tests not to write to src/test-files (Luca Cavanna via Robert
Muir)
* SOLR-3204: The packaged pre-release artifact of Commons CSV used the original
package name (org.apache.commons.csv). This created a compatibility issue as
the Apache Commons team works toward an official release of Commons CSV.
The source of Commons CSV was added under a separate package name to the
Solr source code. (Uwe Schindler, Chris Male, Emmanuel Bourg)
* LUCENE-3930: Changed build system to use Apache Ivy for retrival of 3rd
party JAR files. Please review README.txt for instructions.
(Robert Muir, Chris Male, Uwe Schindler, Steven Rowe, Hossman)
New Features
----------------------
* SOLR-2749: Add boundary scanners for FastVectorHighlighter. <boundaryScanner/>
can be specified with a name in solrconfig.xml, and use hl.boundaryScanner=name
parameter to specify the named <boundaryScanner/>. (koji)
* SOLR-2769: Added factory for the new Hunspell stemmer capable of doing stemming
for 99 languages (janhoy, cmale)
* SOLR-2818: Added before/after count response parsing support for range facets in
SolrJ. (Bernhard Frauendienst via Martijn van Groningen)
Optimizations
----------------------
Bug Fixes
----------------------
* SOLR-2748: The CommitTracker used for commitWith or autoCommit by maxTime
could commit too frequently and could block adds until a new searcher was
registered. (yonik)
* SOLR-2763: Extracting update request handler throws exception and returns 400
when zero-length file posted using multipart form post (janhoy)
* SOLR-2780: Fixed issue where multi select facets didn't respect group.truncate
parameter.
(Martijn van Groningen, Ramzi Alqrainy)
* SOLR-2861: Fix extremely rare race condition on commit that can result
in a NPE (yonik)
* SOLR-2813: Fix HTTP error codes returned when requests contain strings that
can not be parsed as numbers for Trie fields. (Jeff Crump and hossman)
Other Changes
----------------------
* SOLR-2771: Solr modules' tests should not depend on solr-core test classes;
move BufferingRequestProcessor from solr-core tests to test-framework so that
the Solr Cell module can use it. (janhoy, Steve Rowe)
* SOLR-2849: Fix dependencies in Maven POMs. (David Smiley via Steve Rowe)
* 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.
New Features
----------------------
* SOLR-2615: Log individual updates (adds and deletes) at the FINE level
before adding to the index. Fix a null pointer exception in logging
when there was no unique key. (David Smiley via yonik)
* SOLR-2665: Added post group faceting. Facet counts are based on the most
relevant document of each group matching the query. This feature has the
same impact on the StatsComponent. (Martijn van Groningen)
* SOLR-2675: CoreAdminHandler now allows arbitrary properties to be
specified when CREATEing a new SolrCore using property.* request
params. (Yury Kats, hossman)
* SOLR-2714: JSON update format - "null" field values are now dropped
instead of causing an exception. (Trygve Laugstøl, yonik)
Optimizations
----------------------
Bug Fixes
----------------------
* SOLR-2636: Fix explain functionality for negative queries. (Tom Hill via yonik)
* SOLR-2623: Solr JMX MBeans do not survive core reloads (Alexey Serba, shalin)
* Fixed grouping bug when start is bigger than rows and format is simple that zero
documents are returned even
if there are documents to display. (Martijn van Groningen, Nikhil Chhaochharia)
* SOLR-2642: Fixed sorting by function when using grouping. (Thomas Heigl, Martijn
van Groningen)
* SOLR-2644: When using DIH with threads=2 the default logging is set too high
(Bill Bell via shalin)
* SOLR-2655: DIH multi threaded mode does not resolve attributes correctly
(Frank Wesemann, shalin)
Other Changes
----------------------
Build
----------------------
* SOLR-2452,SOLR-2653,LUCENE-3323,SOLR-2659,LUCENE-3329,SOLR-2666:
Rewrote the Solr build system:
- Integrated more fully with the Lucene build system: generalized the
Lucene build system and eliminated duplication.
- Converted all Solr contribs to the Lucene/Solr conventional src/ layout:
java/, resources/, test/, and test-files/<contrib-name>.
- Created a new Solr-internal module named "core" by moving the java/,
test/, and test-files/ directories from solr/src/ to solr/core/src/.
- Merged solr/src/webapp/src/ into solr/core/src/java/.
- Eliminated solr/src/ by moving all its directories up one level;
renamed solr/src/site/ to solr/site-src/ because solr/site/ already
exists.
- Merged solr/src/common/ into solr/solrj/src/java/.
- Moved o.a.s.client.solrj.* and o.a.s.common.* tests from
solr/src/test/ to solr/solrj/src/test/.
- Made the solrj tests not depend on the solr core tests by moving
some classes from solr/src/test/ to solr/test-framework/src/java/.
- Each internal module (core/, solrj/, test-framework/, and webapp/)
now has its own build.xml, from which it is possible to run
module-specific targets. solr/build.xml delegates all build
tasks (via <ant dir="internal-module-dir"> calls) to these
modules' build.xml files.
(Steve Rowe, Robert Muir)
Documentation
----------------------
New Features
----------------------
Optimizations
----------------------
Bug Fixes
----------------------
Other Changes
----------------------
* SOLR-2611: Fix typos in the example configuration (Eric Pugh via rmuir)
New Features
----------------------
Optimizations
----------------------
Bug Fixes
----------------------
* SOLR-2409: edismax parser - treat the text of a fielded query as a literal if the
fieldname does not exist. For example Mission: Impossible should not search on
the "Mission" field unless it's a valid field in the schema. (Ryan McKinley,
yonik)
* SOLR-2333: The "rename" core admin action does not persist the new name to
solr.xml
(Rasmus Hahn, Paul R. Brown via Mark Miller)
* SOLR-2493: SolrQueryParser was fixed to not parse the SolrConfig DOM tree on each
instantiation which is a huge slowdown. (Stephane Bailliez via uschindler)
* SOLR-2495: The JSON parser could hang on corrupted input and could fail
to detect numbers that were too large to fit in a long. (yonik)
Other Changes
----------------------
* SOLR-2061: Pull base tests out into a new Solr Test Framework module,
and publish binary, javadoc, and source test-framework jars.
(Drew Farris, Robert Muir, Steve Rowe)
Build
----------------------
Documentation
----------------------
* The Solr JavaBin format has changed as of Solr 3.1. If you are using the
JavaBin format, you will need to upgrade your SolrJ client. (SOLR-2034)
* LUCENE-2608: Added the ability to specify the accuracy on a per request basis.
It is recommended that implementations of SolrSpellChecker should change over to
the new SolrSpellChecker
methods using the new SpellingOptions class, but are not required to. While this
change is
backward compatible, the trunk version of Solr has already dropped support for
all but the SpellingOptions method. (gsingers)
* SOLR-1574: Add many new functions from java Math (e.g. sin, cos) (yonik)
* SOLR-1625: Add regexp support for TermsComponent (Uri Boness via noble)
* SOLR-1139: Add TermsComponent Query and Response Support in SolrJ (Matt Weber via
shalin)
* SOLR-1177: Distributed Search support for TermsComponent (Matt Weber via shalin)
* SOLR-1131: FieldTypes can now output multiple Fields per Type and still be
searched. This can be handy for hiding the details of a particular
implementation such as in the spatial case. (Chris Mattmann, shalin, noble,
gsingers, yonik)
* SOLR-1586: Add support for Geohash and Spatial Tile FieldType (Chris Mattmann,
gsingers)
* SOLR-1697: PluginInfo should load plugins w/o class attribute also (noble)
* SOLR-1677: Add support for choosing the Lucene Version for Lucene components
within
Solr. (Uwe Schindler, Mark Miller)
* SOLR-1925: Add CSVResponseWriter (use wt=csv) that returns the list of documents
in CSV format. (Chris Mattmann, yonik)
* SOLR-2053: Add support for custom comparators in Solr spellchecker, per LUCENE-
2479 (gsingers)
* SOLR-2099: Add ability to throttle rsync based replication using rsync option --
bwlimit.
(Brandon Evans via koji)
* SOLR-2133: Function query parser can now parse multiple comma separated
value sources. It also now fails if there is extra unexpected text
after parsing the functions, instead of silently ignoring it.
This allows expressions like q=dist(2,vector(1,2),$pt)&pt=3,4 (yonik)
* SOLR-2325: Allow tagging and exclusion of main query for faceting. (yonik)
Optimizations
----------------------
Bug Fixes
----------------------
* SOLR-1769: Solr 1.4 Replication - Repeater throwing NullPointerException (Jörgen
Rydenius via noble)
* SOLR-1624: Highlighter only highlights values from the first field value
in a multivalued field when term positions (term vectors) are stored.
(Chris Harris via yonik)
* SOLR-1736:In the slave , If 'mov'ing file does not succeed , copy the file
(noble)
* SOLR-1936: The JSON response format needed to escape unicode code point
U+2028 - 'LINE SEPARATOR' (Robert Hofstra, yonik)
* SOLR-1791: Fix messed up core names on admin gui (yonik via koji)
* SOLR-2047: ReplicationHandler should accept bool type for enable flag. (koji)
* SOLR-1630: Fix spell checking collation issue related to token positions (rmuir,
gsingers)
* SOLR-2100: The replication handler backup command didn't save the commit
point and hence could fail when a newer commit caused the older commit point
to be removed before it was finished being copied. This did not affect
normal master/slave replication. (Peter Sturge via yonik)
* SOLR-2114: Fixed parsing error in hsin function. The function signature has
changed slightly. (gsingers)
* SOLR-2173: Suggester should always rebuild Lookup data if Lookup.load fails. (ab)
* SOLR-1766: DIH with threads enabled doesn't respond to the abort command
(Michael Henson via noble)
Other Changes
----------------------
* SOLR-1674: Improve analysis tests and cut over to new TokenStream API.
(Robert Muir via Mark Miller)
* SOLR-1695: Improved error messages when adding a document that does not
contain exactly one value for the uniqueKey field (hossman)
* SOLR-1851: luceneAutoCommit no longer has any effect - it has been remove (Mark
Miller)
* SOLR-2365: Move DIH jars out of solr.war (David Smiley via yonik)
* SOLR-1813: Add ICU4j to contrib/extraction libs and add tests for Arabic
extraction (Robert Muir via gsingers)
Build
----------------------
* SOLR-1891: Make lucene-jars-to-solr fail if copying any of the jars fails, and
update clean to remove the jars in that directory (Mark Miller)
* LUCENE-2657: Switch from using Maven POM templates to full POMs when
generating Maven artifacts (Steven Rowe)
Documentation
----------------------
There is a new default faceting algorithm for multiVaued fields that should be
faster for most cases. One can revert to the previous algorithm (which has
also been improved somewhat) by adding facet.method=enum to the request.
New users of Solr 1.4 will have omitTermFreqAndPositions enabled for non-text
indexed fields by default, which avoids indexing term frequency, positions, and
payloads, making the index smaller and faster. If you are upgrading from an
earlier Solr release and want to enable omitTermFreqAndPositions by default,
change the schema version from 1.1 to 1.2 in schema.xml. Remove any existing
index and restart Solr to ensure that omitTermFreqAndPositions completely takes
affect.
The default QParserPlugin used by the QueryComponent for parsing the "q" param
has been changed, to remove support for the deprecated use of ";" as a separator
between the query string and the sort options when no "sort" param was used.
Users who wish to continue using the semi-colon based method of specifying the
sort options should explicitly set the defType param to "lucenePlusSort" on all
requests. (The simplest way to do this is by specifying it as a default param
for your request handlers in solrconfig.xml, see the example solrconfig.xml for
sample syntax.)
DIH: Evaluator API has been changed in a non back-compatible way. Users who
have developed custom Evaluators will need to change their code according to
the new API for it to work. See SOLR-996 for details.
DIH: The formatDate evaluator's syntax has been changed. The new syntax is
formatDate(<variable>, '<format_string>'). For example,
formatDate(x.date, 'yyyy-MM-dd'). In the old syntax, the date string was
written without a single-quotes. The old syntax has been deprecated and will
be removed in 1.5, until then, using the old syntax will log a warning.
DIH: The Context API has been changed in a non back-compatible way. In
particular, the Context.currentProcess() method now returns a String
describing the type of the current import process instead of an int.
Similarily, the public constants in Context viz. FULL_DUMP, DELTA_DUMP and
FIND_DELTA are changed to a String type. See SOLR-969 for details.
DIH: The EntityProcessor API has been simplified by moving logic for applying
transformers and handling multi-row outputs from Transformers into an
EntityProcessorWrapper class. The EntityProcessor#destroy is now called once
per parent-row at the end of row (end of data). A new method
EntityProcessor#close is added which is called at the end of import.
DIH: In Solr 1.3, if the last_index_time was not available (first import) and
a delta-import was requested, a full-import was run instead. This is no longer
the case. In Solr 1.4 delta import is run with last_index_time as the epoch
date (January 1, 1970, 00:00:00 GMT) if last_index_time is not available.
Lucene Information
----------------
Since Solr is built on top of Lucene, many people add customizations to Solr
that are dependent on Lucene. Please see http://lucene.apache.org/java/2_9_0/,
especially http://lucene.apache.org/java/2_9_0/changes/Changes.html for more
information on the version of Lucene used in Solr.
New Features
----------------------
1. SOLR-560: Use SLF4J logging API rather then JDK logging. The packaged .war
file is
shipped with a JDK logging implementation, so logging configuration for
the .war should
be identical to solr 1.3. However, if you are using the .jar file, you can
select
which logging implementation to use by dropping a different binding.
See: http://www.slf4j.org/ (ryan)
4. SOLR-793: Add 'commitWithin' argument to the update add command. This behaves
similar to the global autoCommit maxTime argument except that it is set for
each request. (ryan)
9. SOLR-746: Added "omitHeader" request parameter to omit the header from the
response.
(Noble Paul via shalin)
13. SOLR-667: A LRU cache implementation based upon ConcurrentHashMap and other
techniques to reduce
contention and synchronization overhead, to utilize multiple CPU cores more
effectively.
(Fuad Efendi, Noble Paul, yonik via shalin)
15. SOLR-822: Add CharFilter so that characters can be filtered (e.g. character
normalization)
before Tokenizer/TokenFilters. (koji)
16. SOLR-829: Allow slaves to request compressed files from master during
replication
(Simon Collins, Noble Paul, Akshay Ukey via shalin)
18. SOLR-538: Add maxChars attribute for copyField function so that the length
limit for destination
can be specified.
(Georgios Stamatis, Lars Kotthoff, Chris Harris via koji)
19. SOLR-284: Added support for extracting content from binary documents like MS
Word and PDF using Apache Tika. See also contrib/extraction/CHANGES.txt (Eric
Pugh, Chris Harris, yonik, gsingers)
22. SOLR-821: Add support for replication to copy conf file to slave with a
different name. This allows replication
of solrconfig.xml
(Noble Paul, Akshay Ukey via shalin)
29. SOLR-865: Adding support for document updates in binary format and
corresponding support in Solrj client.
(Noble Paul via shalin)
30. SOLR-763: Add support for Lucene's PositionFilter (Mck SembWever via shalin)
31. SOLR-966: Enhance the map() function query to take in an optional default value
(Noble Paul, shalin)
32. SOLR-820: Support replication on startup of master with new index. (Noble Paul,
Akshay Ukey via shalin)
33. SOLR-943: Make it possible to specify dataDir in solr.xml and accept the
dataDir as a request parameter for
the CoreAdmin create command. (Noble Paul via shalin)
35. SOLR-799: Add support for hash based exact/near duplicate document
handling. (Mark Miller, yonik)
37. SOLR-739: Add support for OmitTf (Mark Miller via yonik)
38. SOLR-1046: Nested query support for the function query parser
and lucene query parser (the latter existed as an undocumented
feature in 1.3) (yonik)
39. SOLR-940: Add support for Lucene's Trie Range Queries by providing new
FieldTypes in
schema for int, float, long, double and date. Single-valued Trie based
fields with a precisionStep will index multiple precisions and enable
faster range queries. (Uwe Schindler, yonik, shalin)
48. SOLR-1124: Add a top() function query that causes it's argument to
have it's values derived from the top level IndexReader, even when
invoked from a sub-reader. top() is implicitly used for the
ord() and rord() functions. (yonik)
49. SOLR-1110: Support sorting on trie fields with Distributed Search. (Mark
Miller, Uwe Schindler via shalin)
50. SOLR-1121: CoreAdminhandler should not need a core . This makes it possible to
start a Solr server w/o a core .(noble)
55. SOLR-1051: Support the merge of multiple indexes as a CoreAdmin and an update
command (Ning Li via shalin)
58. SOLR-1189: Support providing username and password for basic HTTP
authentication in Java replication
(Matthew Gregg, shalin)
60. SOLR-1214: differentiate between solr home and instanceDir .deprecates the
method SolrResourceLoader#locateInstanceDir()
and it is renamed to locateSolrHome (noble)
62. SOLR-1145: Add capability to specify an infoStream log file for the underlying
Lucene IndexWriter in solrconfig.xml.
This is an advanced debug log file that can be used to aid developers in fixing
IndexWriter bugs. See the commented
out example in the example solrconfig.xml under the indexDefaults section.
(Chris Harris, Mark Miller)
65. SOLR-1237: firstSearcher and newSearcher can now be identified via the
CommonParams.EVENT (evt) parameter
in a request. This allows a RequestHandler or SearchComponent to know when a
newSearcher or firstSearcher
event happened. QuerySenderListender is the only implementation in Solr that
implements this, but outside
implementations may wish to. See the AbstractSolrEventListener for a helper
method. (gsingers)
71. SOLR-1368: Add ms() function query for getting milliseconds from dates and for
high precision date subtraction, add sub() for subtracting other arguments.
(yonik)
72. SOLR-1156: Sort TermsComponent results by frequency (Matt Weber via yonik)
75. SOLR-1414 : implicit core properties are not set for single core (noble)
77. SOLR-1321: Add better support for efficient wildcard handling (Andrzej
Bialecki, Robert Muir, gsingers)
78. SOLR-1326 : New interface PluginInfoInitialized for all types of plugin (noble)
81. SOLR-1292: Add FieldCache introspection to stats.jsp and JMX Monitoring via
a new SolrFieldCacheMBean. (hossman)
82. SOLR-1167: Solr Config now supports XInclude for XML engines that can support
it. (Bryan Talbot via gsingers)
90. SOLR-833: DIH: A DataSource to read data from a field as a reader. This
can be used, for example, to read XMLs residing as CLOBs or BLOBs in
databases. (Noble Paul via shalin)
91. SOLR-887: A DIH Transformer to strip HTML tags. (Ahmed Hammad via shalin)
95. SOLR-910: Add a few utility commands to the DIH admin page such as full
import, delta import, status, reload config. (Ahmed Hammad via shalin)
96. SOLR-938: Add event listener API for DIH import start and end.
(Kay Kay, Noble Paul via shalin)
97. SOLR-801: DIH: Add support for configurable pre-import and post-import
delete query per root-entity. (Noble Paul via shalin)
98. SOLR-988: Add a new scope for session data stored in Context to store
objects across imports. (Noble Paul via shalin)
118.SOLR-1092: Added a new DIH command named 'import' which does not
automatically clean the index. This is useful and more appropriate when one
needs to import only some of the entities.
(Noble Paul via shalin)
122.SOLR-1234: Multiple DIH does not work because all of them write to
dataimport.properties. Use the handler name as the properties file name
(noble)
Optimizations
----------------------
1. SOLR-374: Use IndexReader.reopen to save resources by re-using parts of the
index that haven't changed. (Mark Miller via yonik)
2. SOLR-808: Write string keys in Maps as extern strings in the javabin format.
(Noble Paul via shalin)
3. SOLR-475: New faceting method with better performance and smaller memory usage
for
multi-valued fields with many unique values but relatively few values per
document.
Controllable via the facet.method parameter - "fc" is the new default method
and "enum"
is the original method. (yonik)
12. SOLR-1165: Use Lucene Filters and pass them down to the Lucene
search methods to filter earlier and improve performance. (yonik)
16. SOLR-1353: Implement and use reusable token streams for analysis. (Robert Muir,
yonik)
18. SOLR-846: DIH: Reduce memory consumption during delta import by removing
keys when used (Ricky Leung, Noble Paul via shalin)
20. SOLR-1004: DIH: Check for abort more frequently during delta-imports.
(Marc Sturlese, shalin)
Bug Fixes
----------------------
1. SOLR-774: Fixed logging level display (Sean Timm via Otis Gospodnetic)
4. SOLR-805: DisMax queries are not being cached in QueryResultCache (Todd Feak
via koji)
11. SOLR-872: Better error message for incorrect copyField destination (Noble Paul
via shalin)
12. SOLR-879: Enable position increments in the query parser and fix the
example schema to enable position increments for the stop filter in
both the index and query analyzers to fix the bug with phrase queries
with stopwords. (yonik)
15. SOLR-898: Fix null pointer exception for the JSON response writer
based formats when nl.json=arrarr with null keys. (yonik)
16. SOLR-901: FastOutputStream ignores write(byte[]) call. (Noble Paul via shalin)
18. SOLR-863: SolrCore.initIndex should close the directory it gets for clearing
the lock and
use the DirectoryFactory. (Mark Miller via shalin)
19. SOLR-802: Fix a potential null pointer error in the distributed FacetComponent
(David Bowen via ryan)
20. SOLR-346: Use perl regex to improve accuracy of finding latest snapshot in
snapinstaller (billa)
21. SOLR-830: Use perl regex to improve accuracy of finding latest snapshot in
snappuller (billa)
22. SOLR-897: Fixed Argument list too long error when there are lots of
snapshots/backups (Dan Rosher via billa)
24. SOLR-902: FastInputStream#read(byte b[], int off, int len) gives incorrect
results when amount left to read is less
than buffer size (Noble Paul via shalin)
25. SOLR-978: Old files are not removed from slaves after replication (Jaco, Noble
Paul, shalin)
26. SOLR-883: Implicit properties are not set for Cores created through CoreAdmin
(Noble Paul via shalin)
27. SOLR-991: Better error message when parsing solrconfig.xml fails due to
malformed XML. Error message notes the name
of the file being parsed. (Michael Henson via shalin)
28. SOLR-1008: Fix stats.jsp XML encoding for <stat> item entries with ampersands
in their names. (ehatcher)
31. SOLR-1015: Incomplete information in replication admin page and http command
response when server
is both master and slave i.e. when server is a repeater (Akshay Ukey via
shalin)
32. SOLR-1018: Slave is unable to replicate when server acts as repeater (as both
master and slave)
(Akshay Ukey, Noble Paul via shalin)
33. SOLR-1031: Fix XSS vulnerability in schema.jsp (Paul Lovvik via ehatcher)
34. SOLR-1064: registry.jsp incorrectly displaying info for last core initialized
regardless of what the current core is. (hossman)
37. SOLR-1125: Use query analyzer rather than index analyzer for queryFieldType in
QueryElevationComponent
(koji)
38. SOLR-1126: Replicated files have incorrect timestamp (Jian Han Guo, Jeff
Newburn, Noble Paul via shalin)
41. SOLR-1135: Java replication creates Snapshot in the directory where Solr was
launched (Jianhan Guo via shalin)
42. SOLR-1138: Query Elevation Component now gracefully handles missing queries.
(gsingers)
47. SOLR-1174: Fix Logging admin form submit url for multicore. (Jacob Singh via
shalin)
48. SOLR-1182: Fix bug in OrdFieldSource#equals which could cause a bug with
OrdFieldSource caching
on OrdFieldSource#hashcode collisions. (Mark Miller)
49. SOLR-1207: equals method should compare this and other of DocList in DocSetBase
(koji)
50. SOLR-1242: Human readable JVM info from system handler does integer cutoff
rounding, even when dealing
with GB. Fixed to round to one decimal place. (Jay Hill, Mark
Miller)
51. SOLR-1243: Admin RequestHandlers should not be cached over HTTP. (Mark Miller)
66. SOLR-1381: Fixed improper handling of fields that have only term positions and
not term offsets during Highlighting (Thorsten Fischer, gsingers)
68. SOLR-1468: SolrJ's XML response parsing threw an exception for null
names, such as those produced when facet.missing=true (yonik)
69. SOLR-1471: Fixed issue with calculating missing values for facets in single
valued cases in Stats Component.
This is not correctly calculated for the multivalued case. (James Miller,
gsingers)
70. SOLR-1481: Fixed omitHeader parameter for PHP ResponseWriter. (Jun Ohtani via
billa)
74. SOLR-1517: Admin pages could stall waiting for localhost name resolution
if reverse DNS wasn't configured; this was changed so the DNS resolution
is attempted only once the first time an admin page is loaded.
(hossman)
80. SOLR-832: Rows parameter is not honored in DIH non-debug mode and can
abort a running import in debug mode. (Akshay Ukey, shalin)
82. SOLR-864: DataImportHandler does not catch and log Errors (shalin)
83. SOLR-873: Fix case-sensitive field names and columns (Jon Baer, shalin)
84. SOLR-893: Unable to delete documents via SQL and deletedPkQuery with
deltaimport (Dan Rosher via shalin)
88. SOLR-985: Fix thread-safety issue with DIH TemplateString for concurrent
imports with multiple cores. (Ryuuichi Kumai via shalin)
89. SOLR-999: DIH XPathRecordReader fails on XMLs with nodes mixed with
CDATA content. (Fergus McMenemie, Noble Paul via shalin)
92. SOLR-1017: Fix DIH thread-safety issue with last_index_time for concurrent
imports in multiple cores due to unsafe usage of SimpleDateFormat by
multiple threads. (Ryuuichi Kumai via shalin)
94. SOLR-1037: DIH should not add null values in a row returned by
EntityProcessor to documents. (shalin)
99. SOLR-1080: DIH RegexTransformer should not replace if regex is not matched.
(Noble Paul, Fergus McMenemie via shalin)
Other Changes
----------------------
1. Upgraded to Lucene 2.4.0 (yonik)
11. SOLR-924: Code cleanup: make all existing finalize() methods call
super.finalize() in a finally block. All current instances extend
Object, so this doesn't fix any bugs, but helps protect against
future changes. (Kay Kay via hossman)
13. SOLR-84: Use new Solr logo in admin (Michiel via koji)
18. SOLR-1022: Better "ignored" field in example schema.xml (Peter Wolanin via
hossman)
19. SOLR-967: New type-safe constructor for NamedList (Kay Kay via hossman)
22. SOLR-1068: Use fsync on replicated index and configuration files (yonik, Noble
Paul, shalin)
26. SOLR-804: Added Lucene's misc contrib JAR (rev 764281). (gsingers)
29. SOLR-997: Wait for a longer time for slave to complete replication in
TestReplicationHandler
(Mark Miller via shalin)
30. SOLR-748: FacetComponent helper classes are made public as an experimental API.
(Wojtek Piaseczny via shalin)
31. Upgraded to Lucene 2.9-dev 773862 (Mark Miller)
36. SOLR-458: Add equals and hashCode methods to NamedList (Stefan Rinner, shalin)
37. SOLR-1184: Add option in solrconfig to open a new IndexReader rather than
using reopen. Done mainly as a fail-safe in the case that a user runs into
a reopen bug/issue. (Mark Miller)
39. SOLR-1151: add dynamic copy field and maxChars example to example schema.xml.
(Peter Wolanin, Mark Miller)
41. SOLR-1257: logging.jsp has been removed and now passes through to the
hierarchical log level tool added in Solr 1.3. Users still
hitting "/admin/logging.jsp" should switch to "/admin/logging".
(hossman)
42. SOLR-1241: Solr's CharFilter has been moved to Lucene. Remove CharFilter and
related classes
from Solr and use Lucene's corresponding code (koji via shalin)
50. SOLR-1357 SolrInputDocument cannot process dynamic fields (Lars Grote via
noble)
52. SOLR-1310: Upgrade to Tika 0.4. Note there are some differences in
detecting Languages now in extracting request handler.
See
http://www.lucidimagination.com/search/document/d6f1899a85b2a45c/vote_apache_tika_0
_4_release_candidate_2#d6f1899a85b2a45c
for discussion on language detection.
See http://www.apache.org/dist/lucene/tika/CHANGES-0.4.txt. (gsingers)
55. SOLR-1029: DIH: Standardize Evaluator parameter parsing and added helper
functions for parsing all evaluator parameters in a standard way.
(Noble Paul, shalin)
57. SOLR-1027: DIH: Alias the 'dataimporter' namespace to a shorter name 'dih'.
(Noble Paul via shalin)
58. SOLR-1084: Better error reporting when DIH entity name is a reserved word
and data-config.xml root node is not <dataConfig>.
(Noble Paul via shalin)
59. SOLR-1087: Deprecate 'where' attribute in CachedSqlEntityProcessor in
favor of cacheKey and cacheLookup. (Noble Paul via shalin)
61. SOLR-1120: Simplified DIH EntityProcessor API by moving logic for applying
transformers and handling multi-row outputs from Transformers into an
EntityProcessorWrapper class. The behavior of the method
EntityProcessor#destroy has been modified to be called once per parent-row
at the end of row. A new method EntityProcessor#close is added which is
called at the end of import. A new method
Context#getResolvedEntityAttribute is added which returns the resolved
value of an entity's attribute. Introduced a DocWrapper which takes care
of maintaining document level session variables.
(Noble Paul, shalin)
62. SOLR-1265: Add DIH variable resolving for URLDataSource properties like
baseUrl. (Chris Eldredge via ehatcher)
63. SOLR-1269: Better error messages from DIH JdbcDataSource when JDBC Driver
name or SQL is incorrect. (ehatcher, shalin)
Build
----------------------
1. SOLR-776: Added in ability to sign artifacts via Ant for releases (gsingers)
Documentation
----------------------
1. SOLR-789: The javadoc of RandomSortField is not readable (Nicolas Lalevée via
koji)
Solr now recognizes HTTP Request headers related to HTTP Caching (see
RFC 2616 sec13) and will by default respond with "304 Not Modified"
when appropriate. This should only affect users who access Solr via
an HTTP Cache, or via a Web-browser that has an internal cache, but if
you wish to suppress this behavior an '<httpCaching never304="true"/>'
option can be added to your solrconfig.xml. See the wiki (or the
example solrconfig.xml) for more details...
http://wiki.apache.org/solr/SolrConfigXml#HTTPCaching
The python client that used to ship with Solr is no longer included in
the distribution (see client/python/README.txt).
15. SOLR-291: Control maximum number of documents to cache for any entry
in the queryResultCache via queryResultMaxDocsCached solrconfig.xml
entry. (Koji Sekiguchi via yonik)
23. SOLR-308: A new UUIDField class which accepts UUID string values,
as well as the special value of "NEW" which triggers generation of
a new random UUID.
(Thomas Peuss via hossman)
24. SOLR-349: New FunctionQuery functions: sum, product, div, pow, log,
sqrt, abs, scale, map. Constants may now be used as a value source.
(yonik)
25. SOLR-359: Add field type className to Luke response, and enabled access
to the detailed field information from the solrj client API.
(Grant Ingersoll via ehatcher)
28. SOLR-395: Many new features for the spell checker implementation, including
an extended response mode with much richer output, multi-word spell checking,
and a bevy of new and renamed options (see the wiki).
(Mike Krimerman, Scott Taber via klaas).
31. SOLR-176: Add detailed timing data to query response output. The SearchHandler
interface now returns how long each section takes. (klaas)
33. SOLR-350: Support multiple SolrCores running in the same solr instance and
allows
runtime runtime management for any running SolrCore. If a solr.xml file exists
34. SOLR-447: Added an single request handler that will automatically register all
standard admin request handlers. This replaces the need to register (and
maintain)
the set of admin request handlers. Assuming solrconfig.xml includes:
<requestHandler name="/admin/"
class="org.apache.solr.handler.admin.AdminHandlers" />
This will register:
Luke/SystemInfo/PluginInfo/ThreadDump/PropertiesRequestHandler.
(ryan)
38. SOLR-478: Added ability to get back unique key information from the
LukeRequestHandler.
(gsingers)
39. SOLR-127: HTTP Caching awareness. Solr now recognizes HTTP Request
headers related to HTTP Caching (see RFC 2616 sec13) and will respond
with "304 Not Modified" when appropriate. New options have been added
to solrconfig.xml to influence this behavior.
(Thomas Peuss via hossman)
51. SOLR-595: Add support for Field level boosting in the MoreLikeThis Handler.
(Tom Morton, gsingers)
53. SOLR-679: Added accessor methods to Lucene based spell checkers (gsingers)
54. SOLR-423: Added Request Handler close hook notification so that RequestHandlers
can be notified
when a core is closing. (gsingers, ryan)
58. SOLR-502: Add search timeout support. (Sean Timm via yonik)
59. SOLR-605: Add the ability to register callbacks programatically (ryan, Noble
Paul)
61. SOLR-522: Make analysis.jsp show payloads. (Tricia Williams via yonik)
63. SOLR-256: Support exposing Solr statistics through JMX (Sharad Agrawal, shalin)
64. SOLR-666: Expose warmup time in statistics for SolrIndexSearcher and LRUCache
(shalin)
65. SOLR-663: Allow multiple files for stopwords, keepwords, protwords and synonyms
68. SOLR-554: Hierarchical JDK log level selector for SOLR Admin replaces
logging.jsp
(Sean Timm via shalin)
69. SOLR-506: Emitting HTTP Cache headers can be enabled or disabled through
configuration on a
per-handler basis (shalin)
70. SOLR-716: Added support for properties in configuration files. Properties can
be specified in
solr.xml and can be used in solrconfig.xml and schema.xml (Henri Biestro,
hossman, ryan, shalin)
71. SOLR-1129 : Support binding dynamic fields to beans in SolrJ (Avlesh Singh ,
noble)
72. SOLR-920 : Cache and reuse IndexSchema . A new attribute added in solr.xml
called 'shareSchema' (noble)
Optimizations
1. SOLR-276: improve JSON writer speed. (yonik)
6. SOLR-342: Added support into the SolrIndexWriter for using several new
features of the new
LuceneIndexWriter, including: setRAMBufferSizeMB(), setMergePolicy(),
setMergeScheduler.
Also, added support to specify Lucene's autoCommit functionality (not to be
confused with Solr's
similarily named autoCommit functionality) via the <luceneAutoCommit> config.
item. See the test
and example solrconfig.xml <indexDefaults> section for usage. Performance
during indexing should
be significantly increased by moving up to 2.3 due to Lucene's new indexing
capabilities.
Furthermore, the setRAMBufferSizeMB makes it more logical to decide on tuning
factors related to
indexing. For best performance, leave the mergePolicy and mergeScheduler as
the defaults and set
ramBufferSizeMB instead of maxBufferedDocs. The best value for this depends on
the types of
documents in use. 32 should be a good starting point, but reports have shown
up to 48 MB provides
good results. Note, it is acceptable to set both ramBufferSizeMB and
maxBufferedDocs, and Lucene
will flush based on whichever limit is reached first. (gsingers)
8. SOLR-624: Only take snapshots if there are differences to the index (Richard
Trey Hyde via gsingers)
Bug Fixes
1. Make TextField respect sortMissingFirst and sortMissingLast fields.
(J.J. Larrea via yonik)
8. SOLR-282: Snapshooter does not work on Solaris and OS X since the cp command
there does not have the -l option. Also updated commit/optimize related
scripts to handle both old and new response format. (bill)
9. SOLR-294: Logging of elapsed time broken on Solaris because the date command
there does not support the %s output format. (bill)
10. SOLR-136: Snappuller - "date -d" and locales don't mix. (Jürgen Hermann via
bill)
11. SOLR-333: Changed distributiondump.jsp to use Solr HOME instead of CWD to set
path.
15. SOLR-449: the python and ruby response writers are now able to correctly
output NaN and Infinity in their respective languages. (klaas)
18. SOLR-324: Add proper support for Long and Doubles in sorting, etc. (gsingers)
20. SOLR-535: Fixed typo (Tokenzied -> Tokenized) in schema.jsp (Thomas Peuss via
billa)
21. SOLR-529: Better error messages from SolrQueryParser when field isn't
specified and there is no defaultSearchField in schema.xml
(Lars Kotthoff via hossman)
24. SOLR-533: Fixed tests so they don't use hardcoded port numbers.
(hossman)
25. SOLR-400: SolrExceptionTest should now handle using OpenDNS as a DNS provider
(gsingers)
27. SOLR-267: Changed logging to report number of hits, and also provide a
mechanism to add log
messages to be output by the SolrCore via a NamedList toLog member variable.
(Will Johnson, yseeley, gsingers)
28. SOLR-509: Moved firstSearcher event notification to the end of the SolrCore
constructor
(Koji Sekiguchi via gsingers)
30. SOLR-539: Fix for non-atomic long counters and a cast fix to avoid divide
by zero. (Sean Timm via Otis Gospodnetic)
31. SOLR-514: Added explicit media-type with UTF* charset to *.xsl files that
don't already have one. (hossman)
37. SOLR-604: If the spellchecking path is relative, make it relative to the Solr
Data Directory.
(Shalin Shekhar Mangar via gsingers)
41. SOLR-501: Fix admin/analysis.jsp UTF-8 input for some other servlet
containers such as Tomcat. (Hiroaki Kawai, Lars Kotthoff via yonik)
44. SOLR-598: DebugComponent now always occurs last in the SearchHandler list
unless the
components are explicitly declared. (gsingers)
47. SOLR-669: snappuler fix for FreeBSD/Darwin (Richard "Trey" Hyde via Otis
Gospodnetic)
48. SOLR-606: Fixed spell check collation offset issue. (Stefan Oestreicher ,
Geoffrey Young, gsingers)
49. SOLR-589: Improved handling of badly formated query strings (Sean Timm via Otis
Gospodnetic)
50. SOLR-749: Allow QParser and ValueSourceParsers to be extended with same name
(hossman, gsingers)
53. SOLR-726: DIH: Jdbc Drivers and DataSources fail to load if placed in
multicore sharedLib or core's lib directory.
(Walter Ferrara, Noble Paul, shalin)
Other Changes
1. SOLR-135: Moved common classes to org.apache.solr.common and altered the
build scripts to make two jars: apache-solr-1.3.jar and
apache-solr-1.3-common.jar. This common.jar can be used in client code;
It does not have lucene or junit dependencies. The original classes
have been replaced with a @Deprecated extended class and are scheduled
to be removed in a later release. While this change does not affect API
compatibility, it is recommended to update references to these
deprecated classes. (ryan)
9. SOLR-451: Changed analysis.jsp to use POST instead of GET, also made the input
area a
bit bigger (gsingers)
11. SOLR-531: Different exit code for rsyncd-start and snappuller if disabled
(Thomas Peuss via billa)
14. SOLR-518: Changed luke.xsl to use divs w/css for generating histograms
instead of SVG (Thomas Peuss via hossman)
15. SOLR-592: Added ShardParams interface and changed several string literals
to references to constants in CommonParams.
(Lars Kotthoff via Otis Gospodnetic)
18. SOLR-591: Changed Solrj default value for facet.sort to true (Lars Kotthoff via
Shalin)
19. Upgraded to Lucene 2.4-dev (r669476) to support SOLR-572 (gsingers)
21. SOLR-682: Scripts now support FreeBSD (Richard Trey Hyde via gsingers)
22. SOLR-489: Added in deprecation comments. (Sean Timm, Lars Kothoff via
gsingers)
23. SOLR-692: Migrated to stable released builds of StAX API 1.0.1 and StAX 1.2.0
(shalin)
24. Upgraded to Lucene 2.4-dev (r686801) (yonik)
25. Upgraded to Lucene 2.4-dev (r688745) 27-Aug-2008 (yonik)
26. Upgraded to Lucene 2.4-dev (r691741) 03-Sep-2008 (yonik)
27. Replaced the StAX reference implementation with the geronimo
StAX API jar, and the Woodstox StAX implementation. (yonik)
Build
1. SOLR-411. Changed the names of the Solr JARs to use the defacto standard JAR
names based on
project-name-version.jar. This yields, for example:
apache-solr-common-1.3-dev.jar
apache-solr-solrj-1.3-dev.jar
apache-solr-1.3-dev.jar
2. SOLR-479: Added clover code coverage targets for committers and the nightly
build. Requires
the Clover library, as licensed to Apache and only available privately. To
run:
ant -Drun.clover=true clean clover test generate-clover-reports
5. SOLR-673: Modify build file to create javadocs for core, solrj, contrib and
"all inclusive" (shalin)
7. SOLR-586: Added ant target and POM files for building maven artifacts of the
Solr core, common,
client and contrib. The target can publish artifacts with source and
javadocs.
(Spencer Crissman, Craig McClanahan, shalin)
The JSON response format for facets has changed to make it easier for
clients to retain sorted order. Use json.nl=map explicitly in clients
to get the old behavior, or add it as a default to the request handler
in solrconfig.xml
The Solr "Request Handler" framework has been updated in two key ways:
First, if a Request Handler is registered in solrconfig.xml with a name
starting with "/" then it can be accessed using path-based URL, instead of
using the legacy "/select?qt=name" URL structure. Second, the Request
Handler framework has been extended making it possible to write Request
Handlers that process streams of data for doing updates, and there is a
new-style Request Handler for XML updates given the name of "/update" in
the example solrconfig.xml. Existing installations without this "/update"
handler will continue to use the old update servlet and should see no
changes in behavior. For new-style update handlers, errors are now
reflected in the HTTP status code, Content-type checking is more strict,
and the response format has changed and is controllable via the wt
parameter.
New Features
1. SOLR-82: Default field values can be specified in the schema.xml.
(Ryan McKinley via hossman)
20. SOLR-66: CSV data format for document additions and updates. (yonik)
23. SOLR-162: Added a "Luke" request handler and other admin helpers.
This exposes the system status through the standard requestHandler
framework. (ryan)
27. SOLR-181: The index schema now supports "required" fields. Attempts
to add a document without a required field will fail, returning a
descriptive error message. By default, the uniqueKey field is
a required field. This can be disabled by setting required=false
in schema.xml. (Greg Ludington via ryan)
33. SOLR-234: TrimFilter can update the Token's startOffset and endOffset
if updateOffsets="true". By default the Token offsets are unchanged.
(ryan)
11. SOLR-230: More options for post.jar to support stdin, xml on the
commandline, and defering commits. Tutorial modified to take
advantage of these options so there is no need for curl.
(hossman)
12. SOLR-128: Upgraded Jetty to the latest stable release 6.1.3 (ryan)
Optimizations
1. SOLR-114: HashDocSet specific implementations of union() and andNot()
for a 20x performance improvement for those set operations, and a new
hash algorithm speeds up exists() by 10% and intersectionSize() by 8%.
(yonik)
Bug Fixes
1. SOLR-87: Parsing of synonym files did not correctly handle escaped
whitespace such as \r\n\t\b\f. (yonik)
9. SOLR-188: bin scripts do not support non-default webapp names. Added "-U"
option to specify a full path to the update url, overriding the
"-h" (hostname), "-p" (port) and "-w" (webapp name) parameters.
(Jeff Rodenburg via billa)
14. SOLR-214: Some servlet containers (including Tomcat and Resin) do not
obey the specified charset. Rather then letting the the container handle
it solr now uses the charset from the header contentType to decode posted
content. Using the contentType: "text/xml; charset=utf-8" will force
utf-8 encoding. If you do not specify a contentType, it will use the
platform default. (Koji Sekiguchi via ryan)
Other Changes
1. Updated to Lucene 2.1
Status
------
This is the first release since Solr joined the Incubator, and brings many
new features and performance optimizations including highlighting,
faceted browsing, and JSON/Python/Ruby response formats.
By default, Solr will no longer use a searcher that has not fully warmed,
and requests will block in the meantime. To change back to the previous
behavior of using a cold searcher in the event there is no other
warm searcher, see the useColdSearcher config item in solrconfig.xml
The XML response format when adding multiple documents to the collection
in a single <add> command has changed to return a single <result>.
New Features
1. added support for setting Lucene's positionIncrementGap
2. Admin: new statistics for SolrIndexSearcher
3. Admin: caches now show config params on stats page
3. max() function added to FunctionQuery suite
4. postOptimize hook, mirroring the functionallity of the postCommit hook,
but only called on an index optimize.
5. Ability to HTTP POST query requests to /select in addition to HTTP-GET
6. The default search field may now be overridden by requests to the
standard request handler using the df query parameter. (Erik Hatcher)
7. Added DisMaxRequestHandler and SolrPluginUtils. (Chris Hostetter)
8. Support for customizing the QueryResponseWriter per request
(Mike Baranczak / SOLR-16 / hossman)
9. Added KeywordTokenizerFactory (hossman)
10. copyField accepts dynamicfield-like names as the source.
(Darren Erik Vengroff via yonik, SOLR-21)
11. new DocSet.andNot(), DocSet.andNotSize() (yonik)
12. Ability to store term vectors for fields. (Mike Klaas via yonik, SOLR-23)
13. New abstract BufferedTokenStream for people who want to write
Tokenizers or TokenFilters that require arbitrary buffering of the
stream. (SOLR-11 / yonik, hossman)
14. New RemoveDuplicatesToken - useful in situations where
synonyms, stemming, or word-deliminater-ing produce identical tokens at
the same position. (SOLR-11 / yonik, hossman)
15. Added highlighting to SolrPluginUtils and implemented in StandardRequestHandler
and DisMaxRequestHandler (SOLR-24 / Mike Klaas via hossman,yonik)
16. SnowballPorterFilterFactory language is configurable via the "language"
attribute, with the default being "English". (Bertrand Delacretaz via yonik,
SOLR-27)
17. ISOLatin1AccentFilterFactory, instantiates ISOLatin1AccentFilter to remove
accents.
(Bertrand Delacretaz via yonik, SOLR-28)
18. JSON, Python, Ruby QueryResponseWriters: use wt="json", "python" or "ruby"
(yonik, SOLR-31)
19. Make web admin pages return UTF-8, change Content-type declaration to include a
space between the mime-type and charset (Philip Jacob, SOLR-35)
20. Made query parser default operator configurable via schema.xml:
<solrQueryParser defaultOperator="AND|OR"/>
The default operator remains "OR".
21. JAVA API: new version of SolrIndexSearcher.getDocListAndSet() which takes
flags (Greg Ludington via yonik, SOLR-39)
22. A HyphenatedWordsFilter, a text analysis filter used during indexing to rejoin
words that were hyphenated and split by a newline. (Boris Vitez via yonik,
SOLR-41)
23. Added a CompressableField base class which allows fields of derived types to
be compressed using the compress=true setting. The field type also gains the
ability to specify a size threshold at which field data is compressed.
(klaas, SOLR-45)
24. Simple faceted search support for fields (enumerating terms)
and arbitrary queries added to both StandardRequestHandler and
DisMaxRequestHandler. (hossman, SOLR-44)
25. In addition to specifying default RequestHandler params in the
solrconfig.xml, support has been added for configuring values to be
appended to the multi-val request params, as well as for configuring
invariant params that can not overridden in the query. (hossman, SOLR-46)
26. Default operator for query parsing can now be specified with q.op=AND|OR
from the client request, overriding the schema value. (ehatcher)
27. New XSLTResponseWriter does server side XSLT processing of XML Response.
In the process, an init(NamedList) method was added to QueryResponseWriter
which works the same way as SolrRequestHandler.
(Bertrand Delacretaz / SOLR-49 / hossman)
28. json.wrf parameter adds a wrapper-function around the JSON response,
useful in AJAX with dynamic script tags for specifying a JavaScript
callback function. (Bertrand Delacretaz via yonik, SOLR-56)
29. autoCommit can be specified every so many documents added (klaas, SOLR-65)
30. ${solr.home}/lib directory can now be used for specifying "plugin" jars
(hossman, SOLR-68)
31. Support for "Date Math" relative "NOW" when specifying values of a
DateField in a query -- or when adding a document.
(hossman, SOLR-71)
32. useColdSearcher control in solrconfig.xml prevents the first searcher
from being used before it's done warming. This can help prevent
thrashing on startup when multiple requests hit a cold searcher.
The default is "false", preventing use before warm. (yonik, SOLR-77)
Optimizations
1. getDocListAndSet can now generate both a DocList and a DocSet from a
single lucene query.
2. BitDocSet.intersectionSize(HashDocSet) no longer generates an intermediate
set
3. OpenBitSet completed, replaces BitSet as the implementation for BitDocSet.
Iteration is faster, and BitDocSet.intersectionSize(BitDocSet) and unionSize
is between 3 and 4 times faster. (yonik, SOLR-15)
4. much faster unionSize when one of the sets is a HashDocSet: O(smaller_set_size)
5. Optimized getDocSet() for term queries resulting in a 36% speedup of
facet.field
queries where DocSets aren't cached (for example, if the number of terms in the
field
is larger than the filter cache.) (yonik)
6. Optimized facet.field faceting by as much as 500 times when the field has
a single token per document (not multiValued & not tokenized) by using the
Lucene FieldCache entry for that field to tally term counts. The first request
utilizing the FieldCache will take longer than subsequent ones.
Bug Fixes
1. Fixed delete-by-id for field types who's indexed form is different
from the printable form (mainly sortable numeric types).
2. Added escaping of attribute values in the XML response (Erik Hatcher)
3. Added empty extractTerms() to FunctionQuery to enable use in
a MultiSearcher (Yonik)
4. WordDelimiterFilter sometimes lost token positionIncrement information
5. Fix reverse sorting for fields were sortMissingFirst=true
(Rob Staveley, yonik)
6. Worked around a Jetty bug that caused invalid XML responses for fields
containing non ASCII chars. (Bertrand Delacretaz via yonik, SOLR-32)
7. WordDelimiterFilter can throw exceptions if configured with both
generate and catenate off. (Mike Klaas via yonik, SOLR-34)
8. Escape '>' in XML output (because ]]> is illegal in CharData)
9. field boosts weren't being applied and doc boosts were being applied to fields
(klaas)
10. Multiple-doc update generates well-formed xml (klaas, SOLR-65)
11. Better parsing of pingQuery from solrconfig.xml (hossman, SOLR-70)
12. Fixed bug with "Distribution" page introduced when Versions were
added to "Info" page (hossman)
13. Fixed HTML escaping issues with user input to analysis.jsp and action.jsp
(hossman, SOLR-74)
Other Changes
1. Upgrade to Lucene 2.0 nightly build 2006-06-22, lucene SVN revision 416224,
http://svn.apache.org/viewvc/lucene/java/trunk/CHANGES.txt?
view=markup&pathrev=416224
2. Modified admin styles to improve display in Internet Explorer (Greg Ludington
via billa, SOLR-6)
3. Upgrade to Lucene 2.0 nightly build 2006-07-15, lucene SVN revision 422302,
4. Included unique key field name/value (if available) in log message of add
(billa, SOLR-18)
5. Updated to Lucene 2.0 nightly build 2006-09-07, SVN revision 462111
6. Added javascript to catch empty query in admin query forms (Tomislav Nakic-
Alfirevic via billa, SOLR-48
7. blackslash escape * in ssh command used in snappuller for zsh compatibility,
SOLR-63
8. check solr return code in admin scripts, SOLR-62
9. Updated to Lucene 2.0 nightly build 2006-11-15, SVN revision 475069
10. Removed src/apps containing the legacy "SolrTest" app (hossman, SOLR-3)
11. Simplified index.jsp and form.jsp, primarily by removing/hiding XML
specific params, and adding an option to pick the output type. (hossman)
12. Added new numeric build property "specversion" to allow clean
MANIFEST.MF files (hossman)
13. Added Solr/Lucene versions to "Info" page (hossman)
14. Explicitly set mime-type of .xsl files in web.xml to
application/xslt+xml (hossman)
15. Config parsing should now work useing DOM Level 2 parsers -- Solr
previously relied on getTextContent which is a DOM Level 3 addition
(Alexander Saar via hossman, SOLR-78)