to a List<String> to enable listing all exceptions that happened, and
prevent an exception in one facet command from affecting another
facet command.
(yonik)
- SOLR-2110: Remove the restriction on names for local params
substitution/dereferencing. Properly encode local params in
distributed faceting.
(yonik)
- SOLR-2135: Fix behavior of ConcurrentLRUCache when asking for
getLatestAccessedItems(0) or getOldestAccessedItems(0).
(David Smiley via hossman)
- SOLR-2148: Highlighter doesn't support q.alt.
(koji)
- SOLR-2180: It was possible for EmbeddedSolrServer to leave searchers
open if a request threw an exception.
(yonik)
- SOLR-2173: Suggester should always rebuild Lookup data if Lookup.load fails.
(ab)
- SOLR-2081: BaseResponseWriter.isStreamingDocs causes
SingleResponseWriter.end to be called 2x
(Chris A. Mattmann via hossman)
- SOLR-2219: The init() method of every SolrRequestHandler was being
called twice.
(ambikeshwar singh and hossman)
- SOLR-2285: duplicate SolrEventListeners no longer created
(hossman)
- SOLR-1993: fix String cast assumption in JavaBinCodec - specific
addresses "commitWithin" option on Update requests.
(noble, hossman, and Maxim Valyanskiy)
- SOLR-2261: fix velocity template layout.vm that referred to an older
version of jquery.
(Eric Pugh via rmuir)
- SOLR-2307: fix bug in PHPSerializedResponseWriter (wt=phps) when
dealing with SolrDocumentList objects -- ie: sharded queries.
(Antonio Verni via hossman)
- SOLR-2127: Fixed serialization of default core and indentation of solr.xml when serializing.
(Ephraim Ofir, Mark Miller)
- SOLR-2320: Fixed ReplicationHandler detail reporting for masters
(hossman)
- SOLR-482: Provide more exception handling in CSVLoader
(gsingers)
- SOLR-1283: HTMLStripCharFilter sometimes threw a "Mark Invalid" exception.
(Julien Coloos, hossman, yonik)
- SOLR-2085: Improve SolrJ behavior when FacetComponent comes before
QueryComponent
(Tomas Salfischberger via hossman)
- SOLR-1940: Fix SolrDispatchFilter behavior when Content-Type is
unknown
(Lance Norskog and hossman)
- SOLR-1983: snappuller fails when modifiedConfFiles is not empty and
full copy of index is needed.
(Alexander Kanarsky via yonik)
- SOLR-2156: SnapPuller fails to clean Old Index Directories on Full Copy
(Jayendra Patil via yonik)
- SOLR-96: Fix XML parsing in XMLUpdateRequestHandler and
DocumentAnalysisRequestHandler to respect charset from XML file and only
use HTTP header's "Content-Type" as a "hint".
(uschindler)
- SOLR-2339: Fix sorting to explicitly generate an error if you
attempt to sort on a multiValued field.
(hossman)
- SOLR-2348: Fix field types to explicitly generate an error if you
attempt to get a ValueSource for a multiValued field.
(hossman)
- SOLR-2380: Distributed faceting could miss values when facet.sort=index
and when facet.offset was greater than 0.
(yonik)
- SOLR-1656: XIncludes and other HREFs in XML files loaded by ResourceLoader
are fixed to be resolved using the URI standard (RFC 2396). The system
identifier is no longer a plain filename with path, it gets initialized
using a custom URI scheme "solrres:". This scheme is resolved using a
EntityResolver that utilizes ResourceLoader
(org.apache.solr.common.util.SystemIdResolver). This makes all relative
pathes in Solr's config files behave like expected. This change
introduces some backwards breaks in the API: Some config classes
(Config, SolrConfig, IndexSchema) were changed to take
org.xml.sax.InputSource instead of InputStream. There may also be some
backwards breaks in existing config files, it is recommended to check
your config files / XSLTs and replace all XIncludes/HREFs that were
hacked to use absolute paths to use relative ones.
(uschindler)
- SOLR-309: Fix FieldType so setting an analyzer on a FieldType that
doesn't expect it will generate an error. Practically speaking this
means that Solr will now correctly generate an error on
initialization if the schema.xml contains an analyzer configuration
for a fieldType that does not use TextField.
(hossman)
- SOLR-2192: StreamingUpdateSolrServer.blockUntilFinished was not
thread safe and could throw an exception.
(yonik)
- SOLR-1692: Fix bug in clustering component relating to carrot.produceSummary
option
(gsingers)
- SOLR-1756: The date.format setting for extraction request handler causes
ClassCastException when enabled and the config code that parses this setting
does not properly use the same iterator instance.
(Christoph Brill, Mark Miller)
- SOLR-1638: Fixed NullPointerException during DIH import if uniqueKey is not
specified in schema
(Akshay Ukey via shalin)
- SOLR-1639: Fixed misleading error message when dataimport.properties is not
writable
(shalin)
- SOLR-1598: DIH: Reader used in PlainTextEntityProcessor is not explicitly
closed
(Sascha Szott via noble)
- SOLR-1759: DIH: $skipDoc was not working correctly
(Gian Marco Tagliani via noble)
- SOLR-1762: DIH: DateFormatTransformer does not work correctly with
non-default locale dates
(tommy chheng via noble)
- SOLR-1757: DIH multithreading sometimes throws NPE
(noble)
- SOLR-1766: DIH with threads enabled doesn't respond to the abort command
(Michael Henson via noble)
- SOLR-1767: dataimporter.functions.escapeSql() does not escape backslash
character
(Sean Timm via noble)
- SOLR-1811: formatDate should use the current NOW value always
(Sean Timm via noble)
- SOLR-1794: Dataimport of CLOB fields fails when getCharacterStream() is
defined in a superclass.
(Gunnar Gauslaa Bergem via rmuir)
- SOLR-2057: DataImportHandler never calls UpdateRequestProcessor.finish()
(Drew Farris via koji)
- SOLR-1973: Empty fields in XML update messages confuse DataImportHandler.
(koji)
- SOLR-2221: Use StrUtils.parseBool() to get values of boolean options in DIH.
true/on/yes (for TRUE) and false/off/no (for FALSE) can be used for
sub-options (debug, verbose, synchronous, commit, clean, optimize) for
full/delta-import commands.
(koji)
- SOLR-2310: DIH: getTimeElapsedSince() returns incorrect hour value when
the elapse is over 60 hours
(tom liu via koji)
- SOLR-2252: DIH: When a child entity in nested entities is rootEntity="true",
delta-import doesn't work.
(koji)
- SOLR-2330: solrconfig.xml files in example-DIH are broken.
(Matt Parker, koji)
- SOLR-1191: resolve DataImportHandler deltaQuery column against pk when pk
has a prefix (e.g. pk="book.id" deltaQuery="select id from ..."). More
useful error reporting when no match found (previously failed with a
NullPointerException in log and no clear user feedback).
(gthb via yonik)
- SOLR-2116: Fix TikaConfig classloader bug in TikaEntityProcessor
(Martijn van Groningen via hossman)
- Other Changes (43)
- SOLR-1602: Refactor SOLR package structure to include o.a.solr.response
and move QueryResponseWriters in there
(Chris A. Mattmann, ryan, hoss)
- SOLR-1516: Addition of an abstract BaseResponseWriter class to simplify the
development of QueryResponseWriter implementations.
(Chris A. Mattmann via noble)
- SOLR-1592: Refactor XMLWriter startTag to allow arbitrary attributes to be written
(Chris A. Mattmann via noble)
- SOLR-1561: Added Lucene 2.9.1 spatial contrib jar to lib.
(gsingers)
- SOLR-1570: Log warnings if uniqueKey is multi-valued or not stored
(hossman, shalin)
- SOLR-1558: QueryElevationComponent only works if the uniqueKey field is
implemented using StrField. In previous versions of Solr no warning or
error would be generated if you attempted to use QueryElevationComponent,
it would just fail in unexpected ways. This has been changed so that it
will fail with a clear error message on initialization.
(hossman)
- SOLR-1611: Added Lucene 2.9.1 collation contrib jar to lib
(shalin)
- SOLR-1608: Extract base class from TestDistributedSearch to make
it easy to write test cases for other distributed components.
(shalin)
- Upgraded to Lucene 2.9-dev r888785
(shalin)
- SOLR-1610: Generify SolrCache
(Jason Rutherglen via shalin)
- SOLR-1637: Remove ALIAS command
- SOLR-1662: Added Javadocs in BufferedTokenStream and fixed incorrect cloning
in TestBufferedTokenStream
(Robert Muir, Uwe Schindler via shalin)
- SOLR-1674: Improve analysis tests and cut over to new TokenStream API.
(Robert Muir via Mark Miller)
- SOLR-1661: Remove adminCore from CoreContainer . removed deprecated methods setAdminCore(), getAdminCore()
(noble)
- SOLR-1704: Google collections moved from clustering to core
(noble)
- SOLR-1268: Add Lucene 2.9-dev r888785 FastVectorHighlighter contrib jar to lib.
(koji)
- SOLR-1538: Reordering of object allocations in ConcurrentLRUCache to eliminate
(an extremely small) potential for deadlock.
(gabriele renzi via hossman)
- SOLR-1588: Removed some very old dead code.
(Chris A. Mattmann via hossman)
- SOLR-1696 : Deprecate old <highlighting> syntax and move configuration to HighlightComponent
(noble)
- SOLR-1727: SolrEventListener should extend NamedListInitializedPlugin
(noble)
- SOLR-1771: Improved error message when StringIndex cannot be initialized
for a function query
(hossman)
- SOLR-1695: Improved error messages when adding a document that does not
contain exactly one value for the uniqueKey field
(hossman)
- SOLR-1776: DismaxQParser and ExtendedDismaxQParser now use the schema.xml
"defaultSearchField" as the default value for the "qf" param instead of failing
with an error when "qf" is not specified.
(hossman)
- SOLR-1851: luceneAutoCommit no longer has any effect - it has been remove
(Mark Miller)
- SOLR-1865: SolrResourceLoader.getLines ignores Byte Order Markers (BOMs) at the
beginning of input files, these are often created by editors such as Windows
Notepad.
(rmuir, hossman)
- SOLR-1938: ElisionFilterFactory will use a default set of French contractions
if you do not supply a custom articles file.
(rmuir)
- SOLR-2003: SolrResourceLoader will report any encoding errors, rather than
silently using replacement characters for invalid inputs
(blargy via rmuir)
- SOLR-1804: Google collections updated to Google Guava (which is a superset of collections and contains bug fixes)
(gsingers)
- SOLR-2034: Switch to JavaBin codec version 2. Strings are now serialized
as the number of UTF-8 bytes, followed by the bytes in UTF-8. Previously
Strings were serialized as the number of UTF-16 chars, followed by the
bytes in Modified UTF-8.
(hossman, yonik, rmuir)
- SOLR-2013: Add mapping-FoldToASCII.txt to example conf directory.
(Steven Rowe via koji)
- SOLR-2213: Upgrade to jQuery 1.4.3
(Erick Erickson via ryan)
- SOLR-1826: Add unit tests for highlighting with termOffsets=true
and overlapping tokens.
(Stefan Oestreicher via rmuir)
- SOLR-2340: Add version infos to message in JavaBinCodec when throwing
exception.
(koji)
- SOLR-2350: Since Solr no longer requires XML files to be in UTF-8
(see SOLR-96) SimplePostTool (aka: post.jar) has been improved to
work with files of any mime-type or charset.
(hossman)
- SOLR-2365: Move DIH jars out of solr.war
(David Smiley via yonik)
- SOLR-2381: Include a patched version of Jetty (6.1.26 + JETTY-1340)
to fix problematic UTF-8 handling for supplementary characters.
(Bernd Fehling, uschindler, yonik, rmuir)
- SOLR-2391: The preferred Content-Type for XML was changed to
application/xml. XMLResponseWriter now only delivers using this
type; updating documents and analyzing documents is still supported
using text/xml as Content-Type, too. If you have clients that are
hardcoded on text/xml as Content-Type, you have to change them.
(uschindler, rmuir)
- SOLR-2414: All ResponseWriters now use only ServletOutputStreams
and wrap their own Writer around it when serializing. This fixes
the bug in PHPSerializedResponseWriter that produced wrong string
length if the servlet container had a broken UTF-8 encoding that was
in fact CESU-8 (see SOLR-1091). The system property to enable the
CESU-8 byte counting in PHPSerializesResponseWriters for broken
servlet containers was therefore removed and is now ignored if set.
Output is always UTF-8.
(uschindler, yonik, rmuir)
- SOLR-141: Errors and Exceptions are formated by ResponseWriter.
(Mike Sokolov, Rich Cariens, Daniel Naber, ryan)
- SOLR-1902: Upgraded to Tika 0.8 and changed deprecated parse call
- SOLR-1813: Add ICU4j to contrib/extraction libs and add tests for Arabic
extraction
(Robert Muir via gsingers)
- SOLR-1821: Fix TimeZone-dependent test failure in TestEvaluatorBag.
(Chris Male via rmuir)
- SOLR-2367: Reduced noise in test output by ensuring the properties file
can be written.
(Gunnlaugur Thor Briem via rmuir)
- Build (5)
- SOLR-1522: Automated release signing process.
(gsingers)
- 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-2466: Commons-Codec was upgraded from 1.3 to 1.4.
(rmuir)
- SOLR-2042: Fixed some Maven deps
(Drew Farris via gsingers)
- LUCENE-2657: Switch from using Maven POM templates to full POMs when
generating Maven artifacts
(Steven Rowe)
- Documentation (2)
- SOLR-1590: Javadoc for XMLWriter#startTag
(Chris A. Mattmann via hossman)
- SOLR-1792: Documented peculiar behavior of TestHarness.LocalRequestFactory
(hossman)
- Release Date: See http://lucene.apache.org/solr for the official release date.
- Upgrading from Solr 1.3 (12)
- 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.
- Searching and sorting is now done on a per-segment basis, meaning that
the FieldCache entries used for sorting and for function queries are
created and used per-segment and can be reused for segments that don't
change between index updates. While generally beneficial, this can lead
to increased memory usage over 1.3 in certain scenarios:
1) A single valued field that was used for both sorting and faceting
in 1.3 would have used the same top level FieldCache entry. In 1.4,
sorting will use entries at the segment level while faceting will still
use entries at the top reader level, leading to increased memory usage.
2) Certain function queries such as ord() and rord() require a top level
FieldCache instance and can thus lead to increased memory usage. Consider
replacing ord() and rord() with alternatives, such as function queries
based on ms() for date boosting.
- If you use custom Tokenizer or TokenFilter components in a chain specified in
schema.xml, they must support reusability. If your Tokenizer or TokenFilter
maintains state, it should implement reset(). If your TokenFilteFactory does
not return a subclass of TokenFilter, then it should implement reset() and call
reset() on its input TokenStream. TokenizerFactory implementations must
now return a Tokenizer rather than a TokenStream.
- 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.)
- If spellcheck.extendedResults=true, the response format for suggestions
has changed, see SOLR-1071.
- Use of the "charset" option when configuring the following Analysis
Factories has been deprecated and will cause a warning to be logged.
In future versions of Solr attempting to use this option will cause an
error. See SOLR-1410 for more information.
-
GreekLowerCaseFilterFactory
-
RussianStemFilterFactory
-
RussianLowerCaseFilterFactory
-
RussianLetterTokenizerFactory
- 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.
- Versions of Major Components (3)
- Apache Lucene 2.9.1 (r832363 on 2.9 branch)
- Apache Tika 0.4
- Carrot2 3.1.0
- Lucene Information (1)
- 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.
Detailed Change List
- New Features (124)
- 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)
- SOLR-617: Allow configurable index deletion policy and provide a default implementation which
allows deletion of commit points on various criteria such as number of commits, age of commit
point and optimized status.
See http://lucene.apache.org/java/2_3_2/api/org/apache/lucene/index/IndexDeletionPolicy.html
(yonik, Noble Paul, Akshay Ukey via shalin)
- SOLR-658: Allow Solr to load index from arbitrary directory in dataDir
(Noble Paul, Akshay Ukey via shalin)
- 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)
- SOLR-670: Add support for rollbacks in UpdateHandler. This allows user to rollback all changes
since the last commit.
(Noble Paul, koji via shalin)
- SOLR-813: Adding DoubleMetaphone Filter and Factory. Similar to the PhoneticFilter,
but this uses DoubleMetaphone specific calls (including alternate encoding)
(Todd Feak via ryan)
- SOLR-680: Add StatsComponent. This gets simple statistics on matched numeric fields,
including: min, max, mean, median, stddev.
(koji, ryan)
-
SOLR-1380: Added support for multi-valued fields
(Harish Agarwal via gsingers)
- SOLR-561: Added Replication implemented in Java as a request handler. Supports index replication
as well as configuration replication and exposes detailed statistics and progress information
on the Admin page. Works on all platforms.
(Noble Paul, yonik, Akshay Ukey, shalin)
- SOLR-746: Added "omitHeader" request parameter to omit the header from the response.
(Noble Paul via shalin)
- SOLR-651: Added TermVectorComponent for serving up term vector information, plus IDF.
See http://wiki.apache.org/solr/TermVectorComponent
(gsingers, Vaijanath N. Rao, Noble Paul)
- SOLR-795: SpellCheckComponent supports building indices on optimize if configured in solrconfig.xml
(Jason Rennie, shalin)
- 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)
- SOLR-465: Add configurable DirectoryProvider so that alternate Directory
implementations can be specified via solrconfig.xml. The default
DirectoryProvider will use NIOFSDirectory for better concurrency
on non Windows platforms.
(Mark Miller, TJ Laurenzo via yonik)
- SOLR-822: Add CharFilter so that characters can be filtered (e.g. character normalization)
before Tokenizer/TokenFilters.
(koji)
- SOLR-829: Allow slaves to request compressed files from master during replication
(Simon Collins, Noble Paul, Akshay Ukey via shalin)
- SOLR-877: Added TermsComponent for accessing Lucene's TermEnum capabilities.
Useful for auto suggest and possibly distributed search. Not distributed search compliant.
(gsingers)
-
Added mincount and maxcount options
(Khee Chin via gsingers)
- 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)
- 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)
- SOLR-819: Added factories for Arabic support
(gsingers)
- SOLR-781: Distributed search ability to sort field.facet values
lexicographically. facet.sort values "true" and "false" are
also deprecated and replaced with "count" and "lex".
(Lars Kotthoff via yonik)
- 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)
- SOLR-911: Add support for multi-select faceting by allowing filters to be
tagged and facet commands to exclude certain filters. This patch also
added the ability to change the output key for facets in the response, and
optimized distributed faceting refinement by lowering parsing overhead and
by making requests and responses smaller.
- SOLR-876: WordDelimiterFilter now supports a splitOnNumerics
option, as well as a list of protected terms.
(Dan Rosher via hossman)
- SOLR-928: SolrDocument and SolrInputDocument now implement the Map<String,?>
interface. This should make plugging into other standard tools easier.
(ryan)
- SOLR-847: Enhance the snappull command in ReplicationHandler to accept masterUrl.
(Noble Paul, Preetam Rao via shalin)
- SOLR-540: Add support for globbing in field names to highlight.
For example, hl.fl=*_text will highlight all fieldnames ending with
_text.
(Lars Kotthoff via yonik)
- SOLR-906: Adding a StreamingUpdateSolrServer that writes update commands to
an open HTTP connection. If you are using solrj for bulk update requests
you should consider switching to this implementaion. However, note that
the error handling is not immediate as it is with the standard SolrServer.
(ryan)
- SOLR-865: Adding support for document updates in binary format and corresponding support in Solrj client.
(Noble Paul via shalin)
- SOLR-763: Add support for Lucene's PositionFilter
(Mck SembWever via shalin)
- SOLR-966: Enhance the map() function query to take in an optional default value
(Noble Paul, shalin)
- SOLR-820: Support replication on startup of master with new index.
(Noble Paul, Akshay Ukey via shalin)
- 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)
- SOLR-850: Addition of timeouts for distributed searching. Configurable through 'shard-socket-timeout' and
'shard-connection-timeout' parameters in SearchHandler.
(Patrick O'Leary via shalin)
- SOLR-799: Add support for hash based exact/near duplicate document
handling.
(Mark Miller, yonik)
- SOLR-1026: Add protected words support to SnowballPorterFilterFactory
(ehatcher)
- SOLR-739: Add support for OmitTf
(Mark Miller via yonik)
- 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)
- 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)
- SOLR-1038: Enhance CommonsHttpSolrServer to add docs in batch using an iterator API
(Noble Paul via shalin)
- SOLR-844: A SolrServer implementation to front-end multiple solr servers and provides load balancing and failover
support
(Noble Paul, Mark Miller, hossman via shalin)
- SOLR-939: ValueSourceRangeFilter/Query - filter based on values in a FieldCache entry or on any arbitrary function of field values.
(yonik)
- SOLR-1095: Fixed performance problem in the StopFilterFactory and simplified code. Added tests as well.
(gsingers)
- SOLR-1096: Introduced httpConnTimeout and httpReadTimeout in replication slave configuration to avoid stalled
replication.
(Jeff Newburn, Noble Paul, shalin)
- SOLR-1115: <bool>on</bool> and <bool>yes</bool> work as expected in solrconfig.xml.
(koji)
- SOLR-1099: A FieldAnalysisRequestHandler which provides the analysis functionality of the web admin page as
a service. The AnalysisRequestHandler is renamed to DocumentAnalysisRequestHandler which is enhanced with
query analysis and showMatch support. AnalysisRequestHandler is now deprecated. Support for both
FieldAnalysisRequestHandler and DocumentAnalysisRequestHandler is also provided in the Solrj client.
(Uri Boness, shalin)
- SOLR-1106: Made CoreAdminHandler Actions pluggable so that additional actions may be plugged in or the existing
ones can be overridden if needed.
(Kay Kay, Noble Paul, shalin)
- SOLR-1124: Add a top() function query that causes its argument to
have its 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)
- SOLR-1110: Support sorting on trie fields with Distributed Search.
(Mark Miller, Uwe Schindler via shalin)
- SOLR-1121: CoreAdminhandler should not need a core . This makes it possible to start a Solr server w/o a core .(noble)
- SOLR-769: Added support for clustering in contrib/clustering. See http://wiki.apache.org/solr/ClusteringComponent for more info.
(gsingers, Stanislaw Osinski)
- SOLR-1175: disable/enable replication on master side. added two commands 'enableReplication' and 'disableReplication'
(noble)
- SOLR-1179: DocSets can now be used as Lucene Filters via
DocSet.getTopFilter()
(yonik)
- SOLR-1116: Add a Binary FieldType
(noble)
- SOLR-1051: Support the merge of multiple indexes as a CoreAdmin and an update command
(Ning Li via shalin)
- SOLR-1152: Snapshoot on ReplicationHandler should accept location as a request parameter
(shalin)
- SOLR-1204: Enhance SpellingQueryConverter to handle UTF-8 instead of ASCII only.
Use the NMTOKEN syntax for matching field names.
(Michael Ludwig, shalin)
- SOLR-1189: Support providing username and password for basic HTTP authentication in Java replication
(Matthew Gregg, shalin)
- SOLR-243: Add configurable IndexReaderFactory so that alternate IndexReader implementations
can be specified via solrconfig.xml. Note that using a custom IndexReader may be incompatible
with ReplicationHandler (see comments in SOLR-1366). This should be treated as an experimental feature.
(Andrzej Bialecki, hossman, Mark Miller, John Wang)
- SOLR-1214: differentiate between solr home and instanceDir .deprecates the method SolrResourceLoader#locateInstanceDir()
and it is renamed to locateSolrHome
(noble)
- SOLR-1216 : disambiguate the replication command names. 'snappull' becomes 'fetchindex' 'abortsnappull' becomes 'abortfetch'
(noble)
- 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)
- SOLR-1256: Show the output of CharFilters in analysis.jsp.
(koji)
- SOLR-1266: Added stemEnglishPossessive option (default=true) to WordDelimiterFilter
that allows disabling of english possessive stemming (removal of trailing 's from tokens)
(Robert Muir via yonik)
- 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)
- SOLR-1343: Added HTMLStripCharFilter and marked HTMLStripReader, HTMLStripWhitespaceTokenizerFactory and
HTMLStripStandardTokenizerFactory deprecated. To strip HTML tags, HTMLStripCharFilter can be used
with an arbitrary Tokenizer.
(koji)
- SOLR-1275: Add expungeDeletes to DirectUpdateHandler2
(noble)
- SOLR-1372: Enhance FieldAnalysisRequestHandler to accept field value from content stream
(ehatcher)
- SOLR-1370: Show the output of CharFilters in FieldAnalysisRequestHandler
(koji)
- SOLR-1373: Add Filter query to admin/form.jsp
(Jason Rutherglen via hossman)
- SOLR-1368: Add ms() function query for getting milliseconds from dates and for
high precision date subtraction, add sub() for subtracting other arguments.
(yonik)
- SOLR-1156: Sort TermsComponent results by frequency
(Matt Weber via yonik)
- SOLR-1335 : load core properties from a properties file
(noble)
- SOLR-1385 : Add an 'enable' attribute to all plugins
(noble)
- SOLR-1414 : implicit core properties are not set for single core
(noble)
- SOLR-659 : Adds shards.start and shards.rows to distributed search
to allow more efficient bulk queries (those that retrieve many or all
documents).
(Brian Whitman via yonik)
- SOLR-1321: Add better support for efficient wildcard handling
(Andrzej Bialecki, Robert Muir, gsingers)
- SOLR-1326 : New interface PluginInfoInitialized for all types of plugin
(noble)
- SOLR-1447 : Simple property injection. <mergePolicy> & <mergeScheduler> syntaxes are now deprecated
(Jason Rutherglen, noble)
- SOLR-908 : CommonGramsFilterFactory/CommonGramsQueryFilterFactory for
speeding up phrase queries containing common words by indexing
n-grams and using them at query time.
(Tom Burton-West, Jason Rutherglen via yonik)
- SOLR-1292: Add FieldCache introspection to stats.jsp and JMX Monitoring via
a new SolrFieldCacheMBean.
(hossman)
- SOLR-1167: Solr Config now supports XInclude for XML engines that can support it.
(Bryan Talbot via gsingers)
- SOLR-1478: Enable sort by Lucene docid.
(ehatcher)
- SOLR-1449: Add <lib> elements to solrconfig.xml to specifying additional
classpath directories and regular expressions.
(hossman via yonik)
- SOLR-1128: Added metadata output to extraction request handler "extract
only" option.
(gsingers)
- SOLR-1274: Added text serialization output for extractOnly
(Peter Wolanin, gsingers)
- SOLR-768: DIH: Set last_index_time variable in full-import command.
(Wojtek Piaseczny, Noble Paul via shalin)
- SOLR-811: Allow a "deltaImportQuery" attribute in SqlEntityProcessor
which is used for delta imports instead of DataImportHandler manipulating
the SQL itself.
(Noble Paul via shalin)
- SOLR-842: Better error handling in DataImportHandler with options to
abort, skip and continue imports.
(Noble Paul, shalin)
- 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)
- SOLR-887: A DIH Transformer to strip HTML tags.
(Ahmed Hammad via shalin)
- SOLR-886: DataImportHandler should rollback when an import fails or it is
aborted
(shalin)
- SOLR-891: A DIH Transformer to read strings from Clob type.
(Noble Paul via shalin)
- SOLR-812: Configurable JDBC settings in JdbcDataSource including optimized
defaults for read only mode.
(David Smiley, Glen Newton, shalin)
- 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)
- SOLR-938: Add event listener API for DIH import start and end.
(Kay Kay, Noble Paul via shalin)
- SOLR-801: DIH: Add support for configurable pre-import and post-import
delete query per root-entity.
(Noble Paul via shalin)
- SOLR-988: Add a new scope for session data stored in Context to store
objects across imports.
(Noble Paul via shalin)
- SOLR-980: A PlainTextEntityProcessor which can read from any
DataSource<Reader> and output a String.
(Nathan Adams, Noble Paul via shalin)
- SOLR-1003: XPathEntityprocessor must allow slurping all text from a given
xml node and its children.
(Noble Paul via shalin)
- SOLR-1001: Allow variables in various attributes of RegexTransformer,
HTMLStripTransformer and NumberFormatTransformer.
(Fergus McMenemie, Noble Paul, shalin)
- SOLR-989: DIH: Expose running statistics from the Context API.
(Noble Paul, shalin)
- SOLR-996: DIH: Expose Context to Evaluators.
(Noble Paul, shalin)
- SOLR-783: DIH: Enhance delta-imports by maintaining separate
last_index_time for each entity.
(Jon Baer, Noble Paul via shalin)
- SOLR-1033: Current entity's namespace is made available to all DIH
Transformers. This allows one to use an output field of TemplateTransformer
in other transformers, among other things.
(Fergus McMenemie, Noble Paul via shalin)
- SOLR-1066: New methods in DIH Context to expose Script details.
ScriptTransformer changed to read scripts through the new API methods.
(Noble Paul via shalin)
- SOLR-1062: A DIH LogTransformer which can log data in a given template
format.
(Jon Baer, Noble Paul via shalin)
- SOLR-1065: A DIH ContentStreamDataSource which can accept HTTP POST data
in a content stream. This can be used to push data to Solr instead of
just pulling it from DB/Files/URLs.
(Noble Paul via shalin)
- SOLR-1061: Improve DIH RegexTransformer to create multiple columns from
regex groups.
(Noble Paul via shalin)
- SOLR-1059: Special DIH flags introduced for deleting documents by query or
id, skipping rows and stopping further transforms. Use $deleteDocById,
$deleteDocByQuery for deleting by id and query respectively. Use $skipRow
to skip the current row but continue with the document. Use $stopTransform
to stop further transformers. New methods are introduced in Context for
deleting by id and query.
(Noble Paul, Fergus McMenemie, shalin)
- SOLR-1076: JdbcDataSource should resolve DIH variables in all its
configuration parameters.
(shalin)
- SOLR-1055: Make DIH JdbcDataSource easily extensible by making the
createConnectionFactory method protected and return a
Callable<Connection> object.
(Noble Paul, shalin)
- SOLR-1058: DIH: JdbcDataSource can lookup javax.sql.DataSource using JNDI.
Use a jndiName attribute to specify the location of the data source.
(Jason Shepherd, Noble Paul via shalin)
- SOLR-1083: A DIH Evaluator for escaping query characters.
(Noble Paul, shalin)
- SOLR-934: A MailEntityProcessor to enable indexing mails from
POP/IMAP sources into a solr index.
(Preetam Rao, shalin)
- SOLR-1060: A DIH LineEntityProcessor which can stream lines of text from a
given file to be indexed directly or for processing with transformers and
child entities.
(Fergus McMenemie, Noble Paul, shalin)
- SOLR-1127: Add support for DIH field name to be templatized.
(Noble Paul, shalin)
- 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)
- SOLR-1153: DIH 'deltaImportQuery' is honored on child entities as well
(noble)
- SOLR-1230: Enhanced dataimport.jsp to work with all DataImportHandler
request handler configurations, rather than just a hardcoded /dataimport
handler.
(ehatcher)
- SOLR-1235: disallow period (.) in DIH entity names
(noble)
- 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)
- SOLR-1348: Support binary field type in convertType logic in DIH
JdbcDataSource
(shalin)
- SOLR-1406: DIH: Make FileDataSource and FileListEntityProcessor to be more
extensible
(Luke Forehand, shalin)
- SOLR-1437: DIH: XPathEntityProcessor can deal with xpath syntaxes such as
//tagname , /root//tagname
(Fergus McMenemie via noble)
- Optimizations (22)
- SOLR-374: Use IndexReader.reopen to save resources by re-using parts of the
index that haven't changed.
(Mark Miller via yonik)
- SOLR-808: Write string keys in Maps as extern strings in the javabin format.
(Noble Paul via shalin)
- 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)
- SOLR-970: Use an ArrayList in SolrPluginUtils.parseQueryStrings
since we know exactly how long the List will be in advance.
(Kay Kay via hossman)
- SOLR-1002: Change SolrIndexSearcher to use insertWithOverflow
with reusable priority queue entries to reduce the amount of
generated garbage during searching.
(Mark Miller via yonik)
- SOLR-971: Replace StringBuffer with StringBuilder for instances that do not require thread-safety.
(Kay Kay via shalin)
- SOLR-921: SolrResourceLoader must cache short class name vs fully qualified classname
(Noble Paul, hossman via shalin)
- SOLR-973: CommonsHttpSolrServer writes the xml directly to the server.
(Noble Paul via shalin)
- SOLR-1108: Remove un-needed synchronization in SolrCore constructor.
(Noble Paul via shalin)
- SOLR-1166: Speed up docset/filter generation by avoiding top-level
score() call and iterating over leaf readers with TermDocs.
(yonik)
- SOLR-1169: SortedIntDocSet - a new small set implementation
that saves memory over HashDocSet, is faster to construct,
is ordered for easier implementation of skipTo, and is faster
in the general case.
(yonik)
- SOLR-1165: Use Lucene Filters and pass them down to the Lucene
search methods to filter earlier and improve performance.
(yonik)
- SOLR-1111: Use per-segment sorting to share fieldcache elements
across unchanged segments. This saves memory and reduces
commit times for incremental updates to the index.
(yonik)
- SOLR-1188: Minor efficiency improvement in TermVectorComponent related to ignoring positions or offsets
(gsingers)
- SOLR-1150: Load Documents for Highlighting one at a time rather than
all at once to avoid OOM with many large Documents.
(Siddharth Gargate via Mark Miller)
- SOLR-1353: Implement and use reusable token streams for analysis.
(Robert Muir, yonik)
- SOLR-1296: Enables setting IndexReader's termInfosIndexDivisor via a new attribute to StandardIndexReaderFactory. Enables
setting termIndexInterval to IndexWriter via SolrIndexConfig.
(Jason Rutherglen, hossman, gsingers)
- SOLR-846: DIH: Reduce memory consumption during delta import by removing
keys when used
(Ricky Leung, Noble Paul via shalin)
- SOLR-974: DataImportHandler skips commit if no data has been updated.
(Wojtek Piaseczny, shalin)
- SOLR-1004: DIH: Check for abort more frequently during delta-imports.
(Marc Sturlese, shalin)
- SOLR-1098: DIH DateFormatTransformer can cache the format objects.
(Noble Paul via shalin)
- SOLR-1465: Replaced string concatenations with StringBuilder append
calls in DIH XPathRecordReader.
(Mark Miller, shalin)
- Bug Fixes (105)
- SOLR-774: Fixed logging level display
(Sean Timm via Otis Gospodnetic)
- SOLR-771: CoreAdminHandler STATUS should display 'normalized' paths
(koji, hossman, shalin)
- SOLR-532: WordDelimiterFilter now respects payloads and other attributes of the original Token by
using Token.clone()
(Tricia Williams, gsingers)
- SOLR-805: DisMax queries are not being cached in QueryResultCache
(Todd Feak via koji)
- SOLR-751: WordDelimiterFilter didn't adjust the start offset of single
tokens that started with delimiters, leading to incorrect highlighting.
(Stefan Oestreicher via yonik)
- SOLR-843: SynonymFilterFactory cannot handle multiple synonym files correctly
(koji)
- SOLR-840: BinaryResponseWriter does not handle incompatible data in fields
(Noble Paul via shalin)
- SOLR-803: CoreAdminRequest.createCore fails because name parameter isn't set
(Sean Colombo via ryan)
- SOLR-869: Fix file descriptor leak in SolrResourceLoader#getLines
(Mark Miller, shalin)
- SOLR-872: Better error message for incorrect copyField destination
(Noble Paul via shalin)
- 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)
- SOLR-836: Add missing "a" to the example stopwords.txt
(yonik)
- SOLR-892: Fix serialization of booleans for PHPSerializedResponseWriter
(yonik)
- SOLR-898: Fix null pointer exception for the JSON response writer
based formats when nl.json=arrarr with null keys.
(yonik)
- SOLR-901: FastOutputStream ignores write(byte[]) call.
(Noble Paul via shalin)
- SOLR-807: BinaryResponseWriter writes fieldType.toExternal if it is not a supported type,
otherwise it writes fieldType.toObject. This fixes the bug with encoding/decoding UUIDField.
(koji, Noble Paul, shalin)
- SOLR-863: SolrCore.initIndex should close the directory it gets for clearing the lock and
use the DirectoryFactory.
(Mark Miller via shalin)
- SOLR-802: Fix a potential null pointer error in the distributed FacetComponent
(David Bowen via ryan)
- SOLR-346: Use perl regex to improve accuracy of finding latest snapshot in snapinstaller
(billa)
- SOLR-830: Use perl regex to improve accuracy of finding latest snapshot in snappuller
(billa)
- SOLR-897: Fixed Argument list too long error when there are lots of snapshots/backups
(Dan Rosher via billa)
- SOLR-925: Fixed highlighting on fields with multiValued="true" and termOffsets="true"
(koji)
- 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)
- SOLR-978: Old files are not removed from slaves after replication
(Jaco, Noble Paul, shalin)
- SOLR-883: Implicit properties are not set for Cores created through CoreAdmin
(Noble Paul via shalin)
- 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)
- SOLR-1008: Fix stats.jsp XML encoding for <stat> item entries with ampersands in their names.
(ehatcher)
- SOLR-976: deleteByQuery is ignored when deleteById is placed prior to deleteByQuery in a <delete>.
Now both delete by id and delete by query can be specified at the same time as follows.
<delete>
<id>05991</id><id>06000</id>
<query>office:Bridgewater</query><query>office:Osaka</query>
</delete>
(koji)
- SOLR-1016: HTTP 503 error changes 500 in SolrCore
(koji)
- 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)
- SOLR-1018: Slave is unable to replicate when server acts as repeater (as both master and slave)
(Akshay Ukey, Noble Paul via shalin)
- SOLR-1031: Fix XSS vulnerability in schema.jsp
(Paul Lovvik via ehatcher)
- SOLR-1064: registry.jsp incorrectly displaying info for last core initialized
regardless of what the current core is.
(hossman)
- SOLR-1072: absolute paths used in sharedLib attribute were
incorrectly treated as relative paths.
(hossman)
- SOLR-1104: Fix some rounding errors in LukeRequestHandler's histogram
(hossman)
- SOLR-1125: Use query analyzer rather than index analyzer for queryFieldType in QueryElevationComponent
(koji)
- SOLR-1126: Replicated files have incorrect timestamp
(Jian Han Guo, Jeff Newburn, Noble Paul via shalin)
- SOLR-1094: Incorrect value of correctlySpelled attribute in some cases
(David Smiley, Mark Miller via shalin)
- SOLR-965: Better error message when <pingQuery> is not configured.
(Mark Miller via hossman)
- SOLR-1135: Java replication creates Snapshot in the directory where Solr was launched
(Jianhan Guo via shalin)
- SOLR-1138: Query Elevation Component now gracefully handles missing queries.
(gsingers)
- SOLR-929: LukeRequestHandler should return "dynamicBase" only if the field is dynamic.
(Peter Wolanin, koji)
- SOLR-1141: NullPointerException during snapshoot command in java based replication
(Jian Han Guo, shalin)
- SOLR-1078: Fixes to WordDelimiterFilter to avoid splitting or dropping
international non-letter characters such as non spacing marks.
(yonik)
- SOLR-825, SOLR-1221: Enables highlighting for range/wildcard/fuzzy/prefix queries if using hl.usePhraseHighlighter=true
and hl.highlightMultiTerm=true. Also make both options default to true.
(Mark Miller, yonik)
- SOLR-1174: Fix Logging admin form submit url for multicore.
(Jacob Singh via shalin)
- SOLR-1182: Fix bug in OrdFieldSource#equals which could cause a bug with OrdFieldSource caching
on OrdFieldSource#hashcode collisions.
(Mark Miller)
- SOLR-1207: equals method should compare this and other of DocList in DocSetBase
(koji)
- 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)
- SOLR-1243: Admin RequestHandlers should not be cached over HTTP.
(Mark Miller)
- SOLR-1260: Fix implementations of set operations for DocList subclasses
and fix a bug in HashDocSet construction when offset != 0. These bugs
never manifested in normal Solr use and only potentially affect
custom code.
(yonik)
- SOLR-1171: Fix LukeRequestHandler so it doesn't rely on SolrQueryParser
and report incorrect stats when field names contain characters
SolrQueryParser considers special.
(hossman)
- SOLR-1317: Fix CapitalizationFilterFactory to work when keep parameter is not specified.
(ehatcher)
- SOLR-1342: CapitalizationFilterFactory uses incorrect term length calculations.
(Robert Muir via Mark Miller)
- SOLR-1359: DoubleMetaphoneFilter didn't index original tokens if there was no
alternative, and could incorrectly skip or reorder tokens.
(yonik)
- SOLR-1360: Prevent PhoneticFilter from producing duplicate tokens.
(yonik)
- SOLR-1371: LukeRequestHandler/schema.jsp errored if schema had no
uniqueKey field. The new test for this also (hopefully) adds some
future proofing against similar bugs in the future. As a side
effect QueryElevationComponentTest was refactored, and a bug in
that test was found.
(hossman)
- SOLR-914: General finalize() improvements. No finalizer delegates
to the respective close/destroy method w/o first checking if it's
already been closed/destroyed; if it hasn't a, SEVERE error is
logged first.
(noble, hossman)
- SOLR-1362: WordDelimiterFilter had inconsistent behavior when setting
the position increment of tokens following a token consisting of all
delimiters, and could additionally lose big position increments.
(Robert Muir, yonik)
- SOLR-1091: Jetty's use of CESU-8 for code points outside the BMP
resulted in invalid output from the serialized PHP writer.
(yonik)
- SOLR-1103: LukeRequestHandler (and schema.jsp) have been fixed to
include the "1" (ie: 2**0) bucket in the term histogram data.
(hossman)
- SOLR-1398: Add offset corrections in PatternTokenizerFactory.
(Anders Melchiorsen, koji)
- SOLR-1400: Properly handle zero-length tokens in TrimFilter. This
was not a bug in any released version.
(Peter Wolanin, gsingers)
- SOLR-1071: spellcheck.extendedResults returns an invalid JSON response
when count > 1. To fix, the extendedResults format was changed.
(Uri Boness, yonik)
- SOLR-1381: Fixed improper handling of fields that have only term positions and not term offsets during Highlighting
(Thorsten Fischer, gsingers)
- SOLR-1427: Fixed registry.jsp issue with MBeans
(gsingers)
- SOLR-1468: SolrJ's XML response parsing threw an exception for null
names, such as those produced when facet.missing=true
(yonik)
- 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)
- SOLR-1481: Fixed omitHeader parameter for PHP ResponseWriter.
(Jun Ohtani via billa)
- SOLR-1448: Add weblogic.xml to solr webapp to enable correct operation in
WebLogic.
(Ilan Rabinovitch via yonik)
- SOLR-1504: empty char mapping can cause ArrayIndexOutOfBoundsException in analysis.jsp and co.
(koji)
- SOLR-1394: HTMLStripCharFilter split tokens that contained entities and
often calculated offsets incorrectly for entities.
(Anders Melchiorsen via yonik)
- 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)
- SOLR-1529: More than 8 deleteByQuery commands in a single request
caused an error to be returned, although the deletes were
still executed.
(asmodean via yonik)
- SOLR-800: Deep copy collections to avoid ConcurrentModificationException
in XPathEntityprocessor while streaming
(Kyle Morrison, Noble Paul via shalin)
- SOLR-823: Request parameter variables ${dataimporter.request.xxx} are not
resolved in DIH
(Mck SembWever, Noble Paul, shalin)
- SOLR-728: Add synchronization to avoid race condition of multiple DIH
imports working concurrently
(Walter Ferrara, shalin)
- SOLR-742: Add ability to create dynamic fields with custom
DataImportHandler transformers
(Wojtek Piaseczny, Noble Paul, shalin)
- SOLR-832: Rows parameter is not honored in DIH non-debug mode and can
abort a running import in debug mode.
(Akshay Ukey, shalin)
- SOLR-838: The DIH VariableResolver obtained from a DataSource's context
does not have current data.
(Noble Paul via shalin)
- SOLR-864: DataImportHandler does not catch and log Errors
(shalin)
- SOLR-873: Fix case-sensitive field names and columns
(Jon Baer, shalin)
- SOLR-893: Unable to delete documents via SQL and deletedPkQuery with
deltaimport
(Dan Rosher via shalin)
- SOLR-888: DIH DateFormatTransformer cannot convert non-string type
(Amit Nithian via shalin)
- SOLR-841: DataImportHandler should throw exception if a field does not
have column attribute
(Michael Henson, shalin)
- SOLR-884: CachedSqlEntityProcessor should check if the cache key is
present in the query results
(Noble Paul via shalin)
- SOLR-985: Fix thread-safety issue with DIH TemplateString for concurrent
imports with multiple cores.
(Ryuuichi Kumai via shalin)
- SOLR-999: DIH XPathRecordReader fails on XMLs with nodes mixed with
CDATA content.
(Fergus McMenemie, Noble Paul via shalin)
- SOLR-1000: DIH FileListEntityProcessor should not apply fileName filter to
directory names.
(Fergus McMenemie via shalin)
- SOLR-1009: Repeated column names result in duplicate values.
(Fergus McMenemie, Noble Paul via shalin)
- 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)
- SOLR-1024: Calling abort on DataImportHandler import commits data instead
of calling rollback.
(shalin)
- SOLR-1037: DIH should not add null values in a row returned by
EntityProcessor to documents.
(shalin)
- SOLR-1040: DIH XPathEntityProcessor fails with an xpath like
/feed/entry/link[@type='text/html']/@href
(Noble Paul via shalin)
- SOLR-1042: Fix memory leak in DIH by making TemplateString non-static
member in VariableResolverImpl
(Ryuuichi Kumai via shalin)
- SOLR-1053: IndexOutOfBoundsException in DIH SolrWriter.getResourceAsString
when size of data-config.xml is a multiple of 1024 bytes.
(Herb Jiang via shalin)
- SOLR-1077: IndexOutOfBoundsException with useSolrAddSchema in DIH
XPathEntityProcessor.
(Sam Keen, Noble Paul via shalin)
- SOLR-1080: DIH RegexTransformer should not replace if regex is not matched.
(Noble Paul, Fergus McMenemie via shalin)
- SOLR-1090: DataImportHandler should load the data-config.xml using UTF-8
encoding.
(Rui Pereira, shalin)
- SOLR-1146: ConcurrentModificationException in DataImporter.getStatusMessages
(Walter Ferrara, Noble Paul via shalin)
- SOLR-1229: Fixes for DIH deletedPkQuery, particularly when using
transformed Solr unique id's
(Lance Norskog, Noble Paul via ehatcher)
- SOLR-1286: Fix the IH commit parameter always defaulting to "true" even
if "false" is explicitly passed in.
(Jay Hill, Noble Paul via ehatcher)
- SOLR-1323: Reset XPathEntityProcessor's $hasMore/$nextUrl when fetching
next URL
(noble, ehatcher)
- SOLR-1450: DIH: Jdbc connection properties such as batchSize are not
applied if the driver jar is placed in solr_home/lib.
(Steve Sun via shalin)
- SOLR-1474: DIH Delta-import should run even if last_index_time is not set.
(shalin)
- Other Changes (64)
- Upgraded to Lucene 2.4.0
(yonik)
- SOLR-805: Upgraded to Lucene 2.9-dev (r707499)
(koji)
- DumpRequestHandler (/debug/dump): changed 'fieldName' to 'sourceInfo'.
(ehatcher)
- SOLR-852: Refactored common code in CSVRequestHandler and XMLUpdateRequestHandler
(gsingers, ehatcher)
- SOLR-871: Removed dependency on stax-utils.jar. If you using solr.jar and running
java 6, you can also remove woodstox and geronimo.
(ryan)
- SOLR-465: Upgraded to Lucene 2.9-dev (r719351)
(shalin)
- SOLR-889: Upgraded to commons-io-1.4.jar and commons-fileupload-1.2.1.jar
(ryan)
- SOLR-875: Upgraded to Lucene 2.9-dev (r723985) and consolidated the BitSet implementations
(Michael Busch, gsingers)
- SOLR-819: Upgraded to Lucene 2.9-dev (r724059) to get access to Arabic public constructors
(gsingers)
- SOLR-900: Moved solrj into /src/solrj. The contents of solr-common.jar is now included
in the solr-solrj.jar.
(ryan)
- 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)
- SOLR-885: NamedListCodec is renamed to JavaBinCodec and returns Object instead of NamedList.
(Noble Paul, yonik via shalin)
- SOLR-84: Use new Solr logo in admin
(Michiel via koji)
- SOLR-981: groupId for Woodstox dependency in maven solrj changed to org.codehaus.woodstox
(Tim Taranov via shalin)
- Upgraded to Lucene 2.9-dev r738218
(yonik)
- SOLR-959: Refactored TestReplicationHandler to remove hardcoded port numbers
(hossman, Akshay Ukey via shalin)
- Upgraded to Lucene 2.9-dev r742220
(yonik)
- SOLR-1022: Better "ignored" field in example schema.xml
(Peter Wolanin via hossman)
- SOLR-967: New type-safe constructor for NamedList
(Kay Kay via hossman)
- SOLR-1036: Change default QParser from "lucenePlusSort" to "lucene" to
reduce confusion of semicolon splitting behavior when no sort param is
specified
(hossman)
- Upgraded to Lucene 2.9-dev r752164
(shalin)
- SOLR-1068: Use fsync on replicated index and configuration files
(yonik, Noble Paul, shalin)
- SOLR-952: Cleanup duplicated code in deprecated HighlightingUtils
(hossman)
- Upgraded to Lucene 2.9-dev r764281
(shalin)
- SOLR-1079: Rename omitTf to omitTermFreqAndPositions
(shalin)
- SOLR-804: Added Lucene's misc contrib JAR (rev 764281).
(gsingers)
- Upgraded to Lucene 2.9-dev r768228
(shalin)
- Upgraded to Lucene 2.9-dev r768336
(shalin)
- SOLR-997: Wait for a longer time for slave to complete replication in TestReplicationHandler
(Mark Miller via shalin)
- SOLR-748: FacetComponent helper classes are made public as an experimental API.
(Wojtek Piaseczny via shalin)
- Upgraded to Lucene 2.9-dev 773862
(Mark Miller)
- Upgraded to Lucene 2.9-dev r776177
(shalin)
- SOLR-1149: Made QParserPlugin and related classes extendible as an experimental API.
(Kaktu Chakarabati via shalin)
- Upgraded to Lucene 2.9-dev r779312
(yonik)
- SOLR-786: Refactor DisMaxQParser to allow overriding certain features of DisMaxQParser
(Wojciech Biela via shalin)
- SOLR-458: Add equals and hashCode methods to NamedList
(Stefan Rinner, shalin)
- 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)
- SOLR-1215 use double quotes to enclose attributes in solr.xml
(noble)
- SOLR-1151: add dynamic copy field and maxChars example to example schema.xml.
(Peter Wolanin, Mark Miller)
- SOLR-1233: remove /select?qt=/whatever restriction on /-prefixed request handlers.
(ehatcher)
- 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)
- Upgraded to Lucene 2.9-dev r794238. Other changes include:
(shalin)
- 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)
- SOLR-1261: Lucene trunk renamed RangeQuery & Co to TermRangeQuery
(Uwe Schindler via shalin)
- Upgraded to Lucene 2.9-dev r801856
(Mark Miller)
- SOLR-1276: Added StatsComponentTest
(Rafał Kuć, gsingers)
- SOLR-1377: The TokenizerFactory API has changed to explicitly return a Tokenizer
rather then a TokenStream (that may be or may not be a Tokenizer). This change
is required to take advantage of the Token reuse improvements in lucene 2.9.
(ryan)
- SOLR-1410: Log a warning if the deprecated charset option is used
on GreekLowerCaseFilterFactory, RussianStemFilterFactory,
RussianLowerCaseFilterFactory or RussianLetterTokenizerFactory.
(Robert Muir via hossman)
- SOLR-1423: Due to LUCENE-1906, Solr's tokenizer should use Tokenizer.correctOffset() instead of CharStream.correctOffset().
(Uwe Schindler via koji)
- SOLR-1319, SOLR-1345: Upgrade Solr Highlighter classes to new Lucene Highlighter API. This upgrade has
resulted in a back compat break in the DefaultSolrHighlighter class - getQueryScorer is no longer
protected. If you happened to be overriding that method in custom code, overide getHighlighter instead.
Also, HighlightingUtils#getQueryScorer has been removed as it was deprecated and backcompat has been
broken with it anyway.
(Mark Miller)
- SOLR-1357 SolrInputDocument cannot process dynamic fields
(Lars Grote via noble)
- SOLR-1075: Upgrade to Tika 0.3. See http://www.apache.org/dist/lucene/tika/CHANGES-0.3.txt
(gsingers)
- 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)
- SOLR-782: DIH: Refactored SolrWriter to make it a concrete class and
removed wrappers over SolrInputDocument. Refactored to load Evaluators
lazily. Removed multiple document nodes in the configuration xml. Removed
support for 'default' variables, they are automatically available as
request parameters.
(Noble Paul via shalin)
- SOLR-964: DIH: XPathEntityProcessor now ignores DTD validations
(Fergus McMenemie, Noble Paul via shalin)
- SOLR-1029: DIH: Standardize Evaluator parameter parsing and added helper
functions for parsing all evaluator parameters in a standard way.
(Noble Paul, shalin)
- SOLR-1081: Change DIH EventListener to be an interface so that components
such as an EntityProcessor or a Transformer can act as an event listener.
(Noble Paul, shalin)
- SOLR-1027: DIH: Alias the 'dataimporter' namespace to a shorter name 'dih'.
(Noble Paul via shalin)
- 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)
- SOLR-1087: Deprecate 'where' attribute in CachedSqlEntityProcessor in
favor of cacheKey and cacheLookup.
(Noble Paul via shalin)
- SOLR-969: Change the FULL_DUMP, DELTA_DUMP, FIND_DELTA constants in DIH
Context to String. Change Context.currentProcess() to return a string
instead of an integer.
(Kay Kay, Noble Paul, shalin)
- 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)
- SOLR-1265: Add DIH variable resolving for URLDataSource properties like
baseUrl.
(Chris Eldredge via ehatcher)
- SOLR-1269: Better error messages from DIH JdbcDataSource when JDBC Driver
name or SQL is incorrect.
(ehatcher, shalin)
- Build (6)
- SOLR-776: Added in ability to sign artifacts via Ant for releases
(gsingers)
- SOLR-854: Added run-example target
(Mark Miller via ehatcher)
- SOLR-1054:Fix dist-src target for DataImportHandler
(Ryuuichi Kumai via shalin)
- SOLR-1219: Added proxy.setup target
(koji)
- SOLR-1386: In build.xml, use longfile="gnu" in tar task to avoid warnings about long file names
(Mark Miller via shalin)
- SOLR-1441: Make it possible to run all tests in a package
(shalin)
- Documentation (4)
- SOLR-789: The javadoc of RandomSortField is not readable
(Nicolas Lalevée via koji)
- SOLR-962: Note about null handling in ModifiableSolrParams.add javadoc
(Kay Kay via hossman)
- SOLR-1409: Added Solr Powered By Logos
- SOLR-1369: Add HSQLDB Jar to example-DIH, unzip database and update
instructions.
- Upgrading from Solr 1.2 (8)
- IMPORTANT UPGRADE NOTE: 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 Porter snowball based stemmers in Lucene were updated (LUCENE-1142),
and are not guaranteed to be backward compatible at the index level
(the stem of certain words may have changed). Re-indexing is recommended.
- Older Apache Solr installations can be upgraded by replacing
the relevant war file with the new version. No changes to configuration
files should be needed.
- This version of Solr contains a new version of Lucene implementing
an updated index format. This version of Solr/Lucene can still read
and update indexes in the older formats, and will convert them to the new
format on the first index change. Be sure to backup your index before
upgrading in case you need to downgrade.
- 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
- In Solr 1.2, DateField did not enforce the canonical representation of
the ISO 8601 format when parsing incoming data, and did not generation
the canonical format when generating dates from "Date Math" strings
(particularly as it pertains to milliseconds ending in trailing zeros).
As a result equivalent dates could not always be compared properly.
This problem is corrected in Solr 1.3, but DateField users that might
have been affected by indexing inconsistent formats of equivilent
dates (ie: 1995-12-31T23:59:59Z vs 1995-12-31T23:59:59.000Z) may want
to consider reindexing to correct these inconsistencies. Users who
depend on some of the the "broken" behavior of DateField in Solr 1.2
(specificly: accepting any input that ends in a 'Z') should consider
using the LegacyDateField class as a possible alternative. Users that
desire 100% backwards compatibility should consider using the Solr 1.2
version of DateField.
- Due to some changes in the lifecycle of TokenFilterFactories, users of
Solr 1.2 who have written Java code which constructs new instances of
StopFilterFactory, SynonymFilterFactory, or EnglishProterFilterFactory
will need to modify their code by adding a line like the following
prior to using the factory object...
factory.inform(SolrCore.getSolrCore().getSolrConfig().getResourceLoader());
These lifecycle changes do not affect people who use Solr "out of the
box" or who have developed their own TokenFilterFactory plugins. More
info can be found in SOLR-594.
- The python client that used to ship with Solr is no longer included in
the distribution (see client/python/README.txt).
Detailed Change List
- New Features (73)
- SOLR-69: Adding MoreLikeThisHandler to search for similar documents using
lucene contrib/queries MoreLikeThis. MoreLikeThis is also available from
the StandardRequestHandler using ?mlt=true.
(bdelacretaz, ryan)
- SOLR-253: Adding KeepWordFilter and KeepWordFilterFactory. A TokenFilter
that keeps tokens with text in the registered keeplist. This behaves like
the inverse of StopFilter.
(ryan)
- SOLR-257: WordDelimiterFilter has a new parameter splitOnCaseChange,
which can be set to 0 to disable splitting "PowerShot" => "Power" "Shot".
(klaas)
- SOLR-193: Adding SolrDocument and SolrInputDocument to represent documents
outside of the lucene Document infrastructure. This class will be used
by clients and for processing documents.
(ryan)
- SOLR-244: Added ModifiableSolrParams - a SolrParams implementation that
help you change values after initialization.
(ryan)
- SOLR-20: Added a java client interface with two implementations. One
implementation uses commons httpclient to connect to solr via HTTP. The
other connects to solr directly. Check client/java/solrj. This addition
also includes tests that start jetty and test a connection using the full
HTTP request cycle.
(Darren Erik Vengroff, Will Johnson, ryan)
- SOLR-133: Added StaxUpdateRequestHandler that uses StAX for XML parsing.
This implementation has much better error checking and lets you configure
a custom UpdateRequestProcessor that can selectively process update
requests depending on the request attributes. This class will likely
replace XmlUpdateRequestHandler.
(Thorsten Scherler, ryan)
- SOLR-264: Added RandomSortField, a utility field with a random sort order.
The seed is based on a hash of the field name, so a dynamic field
of this type is useful for generating different random sequences.
This field type should only be used for sorting or as a value source
in a FunctionQuery
(ryan, hossman, yonik)
- SOLR-266: Adding show=schema to LukeRequestHandler to show the parsed
schema fields and field types.
(ryan)
- SOLR-133: The UpdateRequestHandler now accepts multiple delete options
within a single request. For example, sending:
<delete><id>1</id><id>2</id></delete> will delete both 1 and 2.
(ryan)
- SOLR-269: Added UpdateRequestProcessor plugin framework. This provides
a reasonable place to process documents after they are parsed and
before they are committed to the index. This is a good place for custom
document manipulation or document based authorization.
(yonik, ryan)
- SOLR-260: Converting to a standard PluginLoader framework. This reworks
RequestHandlers, FieldTypes, and QueryResponseWriters to share the same
base code for loading and initializing plugins. This adds a new
configuration option to define the default RequestHandler and
QueryResponseWriter in XML using default="true".
(ryan)
- SOLR-225: Enable pluggable highlighting classes. Allow configurable
highlighting formatters and Fragmenters.
(ryan)
- SOLR-273/376/452/516: Added hl.maxAnalyzedChars highlighting parameter, defaulting
to 50k, hl.alternateField, which allows the specification of a backup
field to use as summary if no keywords are matched, and hl.mergeContiguous,
which combines fragments if they are adjacent in the source document.
(klaas, Grant Ingersoll, Koji Sekiguchi via klaas)
- SOLR-291: Control maximum number of documents to cache for any entry
in the queryResultCache via queryResultMaxDocsCached solrconfig.xml
entry.
(Koji Sekiguchi via yonik)
- SOLR-240: New <lockType> configuration setting in <mainIndex> and
<indexDefaults> blocks supports all Lucene builtin LockFactories.
'single' is recommended setting, but 'simple' is default for total
backwards compatibility.
(Will Johnson via hossman)
- SOLR-248: Added CapitalizationFilterFactory that creates tokens with
normalized capitalization. This filter is useful for facet display,
but will not work with a prefix query. (ryan)
SOLR-468: Change to the semantics to keep the original token, not the
token in the Map. Also switched to use Lucene's new reusable token
capabilities.
(gsingers)
- SOLR-307: Added NGramFilterFactory and EdgeNGramFilterFactory.
(Thomas Peuss via Otis Gospodnetic)
- SOLR-305: analysis.jsp can be given a fieldtype instead of a field
name.
(hossman)
- SOLR-102: Added RegexFragmenter, which splits text for highlighting
based on a given pattern.
(klaas)
- SOLR-258: Date Faceting added to SimpleFacets. Facet counts
computed for ranges of size facet.date.gap (a DateMath expression)
between facet.date.start and facet.date.end.
(hossman)
- SOLR-196: A PHP serialized "phps" response writer that returns a
serialized array that can be used with the PHP function unserialize,
and a PHP response writer "php" that may be used by eval.
(Nick Jenkin, Paul Borgermans, Pieter Berkel via yonik)
- 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)
- SOLR-349: New FunctionQuery functions: sum, product, div, pow, log,
sqrt, abs, scale, map. Constants may now be used as a value source.
(yonik)
- 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)
- SOLR-334: Pluggable query parsers. Allows specification of query
type and arguments as a prefix on a query string.
(yonik)
- SOLR-351: External Value Source. An external file may be used
to specify the values of a field, currently usable as
a ValueSource in a FunctionQuery.
(yonik)
- 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).
- SOLR-408: Added PingRequestHandler and deprecated SolrCore.getPingQueryRequest().
Ping requests should be configured using standard RequestHandler syntax in
solrconfig.xml rather then using the <pingQuery></pingQuery> syntax.
(Karsten Sperling via ryan)
- SOLR-281: Added a 'Search Component' interface and converted StandardRequestHandler
and DisMaxRequestHandler to use this framework.
(Sharad Agarwal, Henri Biestro, yonik, ryan)
- SOLR-176: Add detailed timing data to query response output. The SearchHandler
interface now returns how long each section takes.
(klaas)
- SOLR-414: Plugin initialization now supports SolrCore and ResourceLoader "Aware"
plugins. Plugins that implement SolrCoreAware or ResourceLoaderAware are
informed about the SolrCore/ResourceLoader.
(Henri Biestro, ryan)
- 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
in solr.home, this file is used to instanciate multiple cores and enables runtime
core manipulation. For more informaion see: http://wiki.apache.org/solr/CoreAdmin
(Henri Biestro, ryan)
- 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)
- SOLR-142: Added RawResponseWriter and ShowFileRequestHandler. This returns config
files directly. If AdminHandlers are configured, this will be added automatically.
The jsp files /admin/get-file.jsp and /admin/raw-schema.jsp have been deprecated.
The deprecated <admin><gettableFiles> will be automatically registered with
a ShowFileRequestHandler instance for backwards compatibility.
(ryan)
- SOLR-446: TextResponseWriter can write SolrDocuments and SolrDocumentLists the
same way it writes Document and DocList.
(yonik, ryan)
- SOLR-418: Adding a query elevation component. This is an optional component to
elevate some documents to the top positions (or exclude them) for a given query.
(ryan)
- SOLR-478: Added ability to get back unique key information from the LukeRequestHandler.
(gsingers)
- 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)
- SOLR-303: Distributed Search over HTTP. Specification of shards
argument causes Solr to query those shards and merge the results
into a single response. Querying, field faceting (sorted only),
query faceting, highlighting, and debug information are supported
in distributed mode.
(Sharad Agarwal, Patrick O'Leary, Sabyasachi Dalal, Stu Hood,
Jayson Minard, Lars Kotthoff, ryan, yonik)
- SOLR-356: Pluggable functions (value sources) that allow
registration of new functions via solrconfig.xml
(Doug Daniels via yonik)
- SOLR-494: Added cool admin Ajaxed schema explorer.
(Greg Ludington via ehatcher)
- SOLR-497: Added date faceting to the QueryResponse in SolrJ
and QueryResponseTest
(Shalin Shekhar Mangar via gsingers)
- SOLR-486: Binary response format, faster and smaller
than XML and JSON response formats (use wt=javabin).
BinaryResponseParser for utilizing the binary format via SolrJ
and is now the default.
(Noble Paul, yonik)
- SOLR-521: StopFilterFactory support for "enablePositionIncrements"
(Walter Ferrara via hossman)
- SOLR-557: Added SolrCore.getSearchComponents() to return an unmodifiable Map.
(gsingers)
- SOLR-516: Added hl.maxAlternateFieldLength parameter, to set max length for hl.alternateField
(Koji Sekiguchi via klaas)
- SOLR-319: Changed SynonymFilterFactory to "tokenize" synonyms file.
To use a tokenizer, specify "tokenizerFactory" attribute in <filter>.
For example:
<tokenizer class="solr.CJKTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" expand="true"
ignoreCase="true" tokenizerFactory="solr.CJKTokenizerFactory"/>
(koji)
- SOLR-515: Added SimilarityFactory capability to schema.xml,
making config file parameters usable in the construction of
the global Lucene Similarity implementation.
(ehatcher)
- SOLR-536: Add a DocumentObjectBinder to solrj that converts Objects to and
from SolrDocuments.
(Noble Paul via ryan)
- SOLR-595: Add support for Field level boosting in the MoreLikeThis Handler.
(Tom Morton, gsingers)
- SOLR-572: Added SpellCheckComponent and org.apache.solr.spelling package to support more spell
checking functionality. Also includes ability to add your own SolrSpellChecker implementation that
plugs in. See http://wiki.apache.org/solr/SpellCheckComponent for more details
(Shalin Shekhar Mangar, Bojan Smid, gsingers)
- SOLR-679: Added accessor methods to Lucene based spell checkers
(gsingers)
- SOLR-423: Added Request Handler close hook notification so that RequestHandlers can be notified
when a core is closing.
(gsingers, ryan)
- SOLR-603: Added ability to partially optimize.
(gsingers)
- SOLR-483: Add byte/short sorting support
(gsingers)
- SOLR-14: Add preserveOriginal flag to WordDelimiterFilter
(Geoffrey Young, Trey Hyde, Ankur Madnani, yonik)
- SOLR-502: Add search timeout support.
(Sean Timm via yonik)
- SOLR-605: Add the ability to register callbacks programatically
(ryan, Noble Paul)
- SOLR-610: hl.maxAnalyzedChars can be -1 to highlight everything
(Lars Kotthoff via klaas)
- SOLR-522: Make analysis.jsp show payloads.
(Tricia Williams via yonik)
- SOLR-611: Expose sort_values returned by QueryComponent in SolrJ's QueryResponse
(Dan Rosher via shalin)
- SOLR-256: Support exposing Solr statistics through JMX
(Sharad Agrawal, shalin)
- SOLR-666: Expose warmup time in statistics for SolrIndexSearcher and LRUCache
(shalin)
- SOLR-663: Allow multiple files for stopwords, keepwords, protwords and synonyms
(Otis Gospodnetic, shalin)
- SOLR-469: Added DataImportHandler as a contrib project which makes indexing data from Databases,
XML files and HTTP data sources into Solr quick and easy. Includes API and implementations for
supporting multiple data sources, processors and transformers for importing data. Supports full
data imports as well as incremental (delta) indexing. See http://wiki.apache.org/solr/DataImportHandler
for more details.
(Noble Paul, shalin)
- SOLR-622: SpellCheckComponent supports auto-loading indices on startup and optionally, (re)builds
indices on newSearcher event, if configured in solrconfig.xml
(shalin)
- SOLR-554: Hierarchical JDK log level selector for SOLR Admin replaces logging.jsp
(Sean Timm via shalin)
- SOLR-506: Emitting HTTP Cache headers can be enabled or disabled through configuration on a
per-handler basis
(shalin)
- 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)
- SOLR-1129 : Support binding dynamic fields to beans in SolrJ
(Avlesh Singh , noble)
- SOLR-920 : Cache and reuse IndexSchema . A new attribute added in solr.xml called 'shareSchema'
(noble)
- SOLR-700: DIH: Allow configurable locales through a locale attribute in
fields for NumberFormatTransformer.
(Stefan Oestreicher, shalin)
- Changes in runtime behavior (4)
- SOLR-559: use Lucene updateDocument, deleteDocuments methods. This
removes the maxBufferedDeletes parameter added by SOLR-310 as Lucene
now manages the deletes. This provides slightly better indexing
performance and makes overwrites atomic, eliminating the possibility of
a crash causing duplicates.
(yonik)
- SOLR-689 / SOLR-695: If you have used "MultiCore" functionality in an unreleased
version of 1.3-dev, many classes and configs have been renamed for the official
1.3 release. Speciffically, solr.xml has replaced multicore.xml, and uses a slightly
different syntax. The solrj classes: MultiCore{Request/Response/Params} have been
renamed: CoreAdmin{Request/Response/Params}
(hossman, ryan, Henri Biestro)
- SOLR-647: reference count the SolrCore uses to prevent a premature
close while a core is still in use.
(Henri Biestro, Noble Paul, yonik)
- SOLR-737: SolrQueryParser now uses a ConstantScoreQuery for wildcard
queries that prevent an exception from being thrown when the number
of matching terms exceeds the BooleanQuery clause limit.
(yonik)
- Optimizations (10)
- SOLR-276: improve JSON writer speed.
(yonik)
- SOLR-310: bound and reduce memory usage by providing <maxBufferedDeletes> parameter,
which flushes deleted without forcing the user to use <commit/> for this purpose.
(klaas)
- SOLR-348: short-circuit faceting if less than mincount docs match.
(yonik)
- SOLR-354: Optimize removing all documents. Now when a delete by query
of *:* is issued, the current index is removed.
(yonik)
- SOLR-377: Speed up response writers.
(yonik)
- 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)
- SOLR-330: Converted TokenStreams to use Lucene's new char array based
capabilities.
(gsingers)
- SOLR-624: Only take snapshots if there are differences to the index
(Richard Trey Hyde via gsingers)
- SOLR-587: Delete by Query performance greatly improved by using
new underlying Lucene IndexWriter implementation.
(yonik)
- SOLR-730: Use read-only IndexReaders that don't synchronize
isDeleted(). This will speed up function queries and *:* queries
as well as improve their scalability on multi-CPU systems.
(Mark Miller via yonik)
- Bug Fixes (53)
- Make TextField respect sortMissingFirst and sortMissingLast fields.
(J.J. Larrea via yonik)
- autoCommit/maxDocs was not working properly when large autoCommit/maxTime
was specified
(klaas)
- SOLR-283: autoCommit was not working after delete.
(ryan)
- SOLR-286: ContentStreamBase was not using default encoding for getBytes()
(Toru Matsuzawa via ryan)
- SOLR-292: Fix MoreLikeThis facet counting.
(Pieter Berkel via ryan)
- SOLR-297: Fix bug in RequiredSolrParams where requiring a field
specific param would fail if a general default value had been supplied.
(hossman)
- SOLR-331: Fix WordDelimiterFilter handling of offsets for synonyms or
other injected tokens that can break highlighting.
(yonik)
- 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)
- SOLR-294: Logging of elapsed time broken on Solaris because the date command
there does not support the %s output format.
(bill)
- SOLR-136: Snappuller - "date -d" and locales don't mix.
(Jürgen Hermann via bill)
- SOLR-333: Changed distributiondump.jsp to use Solr HOME instead of CWD to set path.
- SOLR-393: Removed duplicate contentType from raw-schema.jsp.
(bill)
- SOLR-413: Requesting a large numbers of documents to be returned (limit)
can result in an out-of-memory exception, even for a small index.
(yonik)
- The CSV loader incorrectly threw an exception when given
header=true (the default).
(ryan, yonik)
- SOLR-449: the python and ruby response writers are now able to correctly
output NaN and Infinity in their respective languages.
(klaas)
- SOLR-42: HTMLStripReader tokenizers now preserve correct source
offsets for highlighting.
(Grant Ingersoll via yonik)
- SOLR-481: Handle UnknownHostException in _info.jsp
(gsingers)
- SOLR-324: Add proper support for Long and Doubles in sorting, etc.
(gsingers)
- SOLR-496: Cache-Control max-age changed to Long so Expires
calculation won't cause overflow.
(Thomas Peuss via hossman)
- SOLR-535: Fixed typo (Tokenzied -> Tokenized) in schema.jsp
(Thomas Peuss via billa)
- SOLR-529: Better error messages from SolrQueryParser when field isn't
specified and there is no defaultSearchField in schema.xml
(Lars Kotthoff via hossman)
- SOLR-530: Better error messages/warnings when parsing schema.xml:
field using bogus fieldtype and multiple copyFields to a non-multiValue
field.
(Shalin Shekhar Mangar via hossman)
- SOLR-528: Better error message when defaultSearchField is bogus or not
indexed.
(Lars Kotthoff via hossman)
- SOLR-533: Fixed tests so they don't use hardcoded port numbers.
(hossman)
- SOLR-400: SolrExceptionTest should now handle using OpenDNS as a DNS provider
(gsingers)
- SOLR-541: Legacy XML update support (provided by SolrUpdateServlet
when no RequestHandler is mapped to "/update") now logs error correctly.
(hossman)
- 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)
-
SOLR-267: Removed adding values to the HTTP headers in SolrDispatchFilter
(gsingers)
- SOLR-509: Moved firstSearcher event notification to the end of the SolrCore constructor
(Koji Sekiguchi via gsingers)
- SOLR-470, SOLR-552, SOLR-544, SOLR-701: Multiple fixes to DateField
regarding lenient parsing of optional milliseconds, and correct
formating using the canonical representation. LegacyDateField has
been added for people who have come to depend on the existing
broken behavior.
(hossman, Stefan Oestreicher)
- SOLR-539: Fix for non-atomic long counters and a cast fix to avoid divide
by zero.
(Sean Timm via Otis Gospodnetic)
- SOLR-514: Added explicit media-type with UTF* charset to *.xsl files that
don't already have one.
(hossman)
- SOLR-505: Give RequestHandlers the possiblity to suppress the generation
of HTTP caching headers.
(Thomas Peuss via Otis Gospodnetic)
- SOLR-553: Handle highlighting of phrase terms better when
hl.usePhraseHighligher=true URL param is used.
(Bojan Smid via Otis Gospodnetic)
- SOLR-590: Limitation in pgrep on Linux platform breaks script-utils fixUser.
(Hannes Schmidt via billa)
- SOLR-597: SolrServlet no longer "caches" SolrCore. This was causing
problems in Resin, and could potentially cause problems for customized
usages of SolrServlet.
- SOLR-585: Now sets the QParser on the ResponseBuilder
(gsingers)
- SOLR-604: If the spellchecking path is relative, make it relative to the Solr Data Directory.
(Shalin Shekhar Mangar via gsingers)
- SOLR-584: Make stats.jsp and stats.xsl more robust.
(Yousef Ourabi and hossman)
- SOLR-443: SolrJ: Declare UTF-8 charset on POSTed parameters
to avoid problems with servlet containers that default to latin-1
and allow switching of the exact POST mechanism for parameters
via useMultiPartPost in CommonsHttpSolrServer.
(Lars Kotthoff, Andrew Schurman, ryan, yonik)
- SOLR-556: multi-valued fields always highlighted in disparate snippets
(Lars Kotthoff via klaas)
- SOLR-501: Fix admin/analysis.jsp UTF-8 input for some other servlet
containers such as Tomcat.
(Hiroaki Kawai, Lars Kotthoff via yonik)
- SOLR-616: SpellChecker accuracy configuration is not applied for FileBasedSpellChecker.
Apply it for FileBasedSpellChecker and IndexBasedSpellChecker both.
(shalin)
- SOLR-648: SpellCheckComponent throws NullPointerException on using spellcheck.q request
parameter after restarting Solr, if reload is called but build is not called.
(Jonathan Lee, shalin)
- SOLR-598: DebugComponent now always occurs last in the SearchHandler list unless the
components are explicitly declared.
(gsingers)
- SOLR-676: DataImportHandler should use UpdateRequestProcessor API instead of directly
using UpdateHandler.
(shalin)
- SOLR-696: Fixed bug in NamedListCodec in regards to serializing Iterable objects.
(gsingers)
- SOLR-669: snappuler fix for FreeBSD/Darwin (Richard "Trey" Hyde via Otis Gospodnetic)
- SOLR-606: Fixed spell check collation offset issue.
(Stefan Oestreicher , Geoffrey Young, gsingers)
- SOLR-589: Improved handling of badly formated query strings
(Sean Timm via Otis Gospodnetic)
- SOLR-749: Allow QParser and ValueSourceParsers to be extended with same name
(hossman, gsingers)
- SOLR-704: DIH NumberFormatTransformer can silently ignore part of the
string while parsing. Now it tries to use the complete string for parsing.
Failure to do so will result in an exception.
(Stefan Oestreicher via shalin)
- SOLR-729: DIH Context.getDataSource(String) gives current entity's
DataSource instance regardless of argument.
(Noble Paul, shalin)
- 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 (27)
- 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)
- SOLR-268: Tweaks to post.jar so it prints the error message from Solr.
(Brian Whitman via hossman)
- Upgraded to Lucene 2.2.0; June 18, 2007.
- SOLR-215: Static access to SolrCore.getSolrCore() and SolrConfig.config
have been deprecated in order to support multiple loaded cores.
(Henri Biestro via ryan)
- SOLR-367: The create method in all TokenFilter and Tokenizer Factories
provided by Solr now declare their specific return types instead of just
using "TokenStream"
(hossman)
- SOLR-396: Hooks add to build system for automatic generation of (stub)
Tokenizer and TokenFilter Factories.
Also: new Factories for all Tokenizers and TokenFilters provided by the
lucene-analyzers-2.2.0.jar -- includes support for German, Chinese,
Russan, Dutch, Greek, Brazilian, Thai, and French.
(hossman)
- Upgraded to commons-CSV r609327, which fixes escaping bugs and
introduces new escaping and whitespace handling options to
increase compatibility with different formats.
(yonik)
- Upgraded to Lucene 2.3.0; Jan 23, 2008.
- SOLR-451: Changed analysis.jsp to use POST instead of GET, also made the input area a
bit bigger
(gsingers)
- Upgrade to Lucene 2.3.1
- SOLR-531: Different exit code for rsyncd-start and snappuller if disabled
(Thomas Peuss via billa)
- SOLR-550: Clarified DocumentBuilder addField javadocs
(gsingers)
- Upgrade to Lucene 2.3.2
- SOLR-518: Changed luke.xsl to use divs w/css for generating histograms
instead of SVG
(Thomas Peuss via hossman)
- SOLR-592: Added ShardParams interface and changed several string literals
to references to constants in CommonParams.
(Lars Kotthoff via Otis Gospodnetic)
- SOLR-520: Deprecated unused LengthFilter since already core in
Lucene-Java
(hossman)
- SOLR-645: Refactored SimpleFacetsTest
(Lars Kotthoff via hossman)
- SOLR-591: Changed Solrj default value for facet.sort to true
(Lars Kotthoff via Shalin)
- Upgraded to Lucene 2.4-dev (r669476) to support SOLR-572
(gsingers)
- SOLR-636: Improve/simplify example configs; and make index.jsp
links more resilient to configs loaded via an InputStream
(Lars Kotthoff, hossman)
- SOLR-682: Scripts now support FreeBSD
(Richard Trey Hyde via gsingers)
- SOLR-489: Added in deprecation comments.
(Sean Timm, Lars Kothoff via gsingers)
- SOLR-692: Migrated to stable released builds of StAX API 1.0.1 and StAX 1.2.0
(shalin)
- Upgraded to Lucene 2.4-dev (r686801)
(yonik)
- Upgraded to Lucene 2.4-dev (r688745) 27-Aug-2008
(yonik)
- Upgraded to Lucene 2.4-dev (r691741) 03-Sep-2008
(yonik)
- Replaced the StAX reference implementation with the geronimo
StAX API jar, and the Woodstox StAX implementation.
(yonik)
- Build (7)
- 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
- 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
- SOLR-510: Nightly release includes client sources.
(koji)
- SOLR-563: Modified the build process to build contrib projects
(Shalin Shekhar Mangar via Otis Gospodnetic)
- SOLR-673: Modify build file to create javadocs for core, solrj, contrib and "all inclusive"
(shalin)
- SOLR-672: Nightly release includes contrib sources.
(Jeremy Hinegardner, shalin)
- 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)
- Upgrading from Solr 1.1 (6)
- IMPORTANT UPGRADE NOTE: 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.
- Older Apache Solr installations can be upgraded by replacing
the relevant war file with the new version. No changes to configuration
files should be needed.
- This version of Solr contains a new version of Lucene implementing
an updated index format. This version of Solr/Lucene can still read
and update indexes in the older formats, and will convert them to the new
format on the first index change. One change in the new index format
is that all "norms" are kept in a single file, greatly reducing the number
of files per segment. Users of compound file indexes will want to consider
converting to the non-compound format for faster indexing and slightly better
search concurrency.
- 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 Lucene based Solr query syntax is slightly more strict.
A ':' in a field value must be escaped or the whole value must be quoted.
- 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.
Detailed Change List
- New Features (36)
- SOLR-82: Default field values can be specified in the schema.xml.
(Ryan McKinley via hossman)
- SOLR-89: Two new TokenFilters with corresponding Factories...
* TrimFilter - Trims leading and trailing whitespace from Tokens
* PatternReplaceFilter - applies a Pattern to each token in the
stream, replacing match occurances with a specified replacement.
(hossman)
- SOLR-91: allow configuration of a limit of the number of searchers
that can be warming in the background. This can be used to avoid
out-of-memory errors, or contention caused by more and more searchers
warming in the background. An error is thrown if the limit specified
by maxWarmingSearchers in solrconfig.xml is exceeded.
(yonik)
- SOLR-106: New faceting parameters that allow specification of a
minimum count for returned facets (facet.mincount), paging through facets
(facet.offset, facet.limit), and explicit sorting (facet.sort).
facet.zeros is now deprecated.
(yonik)
- SOLR-80: Negative queries are now allowed everywhere. Negative queries
are generated and cached as their positive counterpart, speeding
generation and generally resulting in smaller sets to cache.
Set intersections in SolrIndexSearcher are more efficient,
starting with the smallest positive set, subtracting all negative
sets, then intersecting with all other positive sets.
(yonik)
- SOLR-117: Limit a field faceting to constraints with a prefix specified
by facet.prefix or f.<field>.facet.prefix.
(yonik)
- SOLR-107: JAVA API: Change NamedList to use Java5 generics
and implement Iterable<Map.Entry>
(Ryan McKinley via yonik)
- SOLR-104: Support for "Update Plugins" -- RequestHandlers that want
access to streams of data for doing updates. ContentStreams can come
from the raw POST body, multi-part form data, or remote URLs.
Included in this change is a new SolrDispatchFilter that allows
RequestHandlers registered with names that begin with a "/" to be
accessed using a URL structure based on that name.
(Ryan McKinley via hossman)
- SOLR-126: DirectUpdateHandler2 supports autocommitting after a specified time
(in ms), using <autoCommit><maxTime>10000</maxTime></autoCommit>.
(Ryan McKinley via klaas).
- SOLR-116: IndexInfoRequestHandler added.
(Erik Hatcher)
- SOLR-79: Add system property ${<sys.prop>[:<default>]} substitution for
configuration files loaded, including schema.xml and solrconfig.xml.
(Erik Hatcher with inspiration from Andrew Saar)
- SOLR-149: Changes to make Solr more easily embeddable, in addition
to logging which request handler handled each request.
(Ryan McKinley via yonik)
- SOLR-86: Added standalone Java-based command-line updater.
(Erik Hatcher via Bertrand Delecretaz)
- SOLR-152: DisMaxRequestHandler now supports configurable alternate
behavior when q is not specified. A "q.alt" param can be specified
using SolrQueryParser syntax as a mechanism for specifying what query
the dismax handler should execute if the main user query (q) is blank.
(Ryan McKinley via hossman)
- SOLR-158: new "qs" (Query Slop) param for DisMaxRequestHandler
allows for specifying the amount of default slop to use when parsing
explicit phrase queries from the user.
(Adam Hiatt via hossman)
- SOLR-81: SpellCheckerRequestHandler that uses the SpellChecker from
the Lucene contrib.
(Otis Gospodnetic and Adam Hiatt)
- SOLR-182: allow lazy loading of request handlers on first request.
(Ryan McKinley via yonik)
- SOLR-81: More SpellCheckerRequestHandler enhancements, inlcluding
support for relative or absolute directory path configurations, as
well as RAM based directory.
(hossman)
- SOLR-197: New parameters for input: stream.contentType for specifying
or overriding the content type of input, and stream.file for reading
local files.
(Ryan McKinley via yonik)
- SOLR-66: CSV data format for document additions and updates.
(yonik)
- SOLR-184: add echoHandler=true to responseHeader, support echoParams=all
(Ryan McKinley via ehatcher)
- SOLR-211: Added a regex PatternTokenizerFactory. This extracts tokens
from the input string using a regex Pattern.
(Ryan McKinley)
- SOLR-162: Added a "Luke" request handler and other admin helpers.
This exposes the system status through the standard requestHandler
framework.
(ryan)
- SOLR-212: Added a DirectSolrConnection class. This lets you access
solr using the standard request/response formats, but does not require
an HTTP connection. It is designed for embedded applications.
(ryan)
- SOLR-204: The request dispatcher (added in SOLR-104) can handle
calls to /select. This offers uniform error handling for /update and
/select. To enable this behavior, you must add:
<requestDispatcher handleSelect="true" > to your solrconfig.xml
See the example solrconfig.xml for details.
(ryan)
- SOLR-170: StandardRequestHandler now supports a "sort" parameter.
Using the ';' syntax is still supported, but it is recommended to
transition to the new syntax.
(ryan)
- 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)
- SOLR-217: Fields configured in the schema to be neither indexed or
stored will now be quietly ignored by Solr when Documents are added.
The example schema has a comment explaining how this can be used to
ignore any "unknown" fields.
(Will Johnson via hossman)
- SOLR-227: If schema.xml defines multiple fieldTypes, fields, or
dynamicFields with the same name, a severe error will be logged rather
then quietly continuing. Depending on the <abortOnConfigurationError>
settings, this may halt the server. Likewise, if solrconfig.xml
defines multiple RequestHandlers with the same name it will also add
an error.
(ryan)
- SOLR-226: Added support for dynamic field as the destination of a
copyField using glob (*) replacement.
(ryan)
- SOLR-224: Adding a PhoneticFilterFactory that uses apache commons codec
language encoders to build phonetically similar tokens. This currently
supports: DoubleMetaphone, Metaphone, Soundex, and RefinedSoundex
(ryan)
- SOLR-199: new n-gram tokenizers available via NGramTokenizerFactory
and EdgeNGramTokenizerFactory.
(Adam Hiatt via yonik)
- SOLR-234: TrimFilter can update the Token's startOffset and endOffset
if updateOffsets="true". By default the Token offsets are unchanged.
(ryan)
- SOLR-208: new example_rss.xsl and example_atom.xsl to provide more
examples for people about the Solr XML response format and how they
can transform it to suit different needs.
(Brian Whitman via hossman)
- SOLR-249: Deprecated SolrException( int, ... ) constructors in favor
of constructors that takes an ErrorCode enum. This will ensure that
all SolrExceptions use a valid HTTP status code.
(ryan)
- SOLR-386: Abstracted SolrHighlighter and moved existing implementation
to DefaultSolrHighlighter. Adjusted SolrCore and solrconfig.xml so
that highlighter is configurable via a class attribute. Allows users
to use their own highlighter implementation.
(Tricia Williams via klaas)
- Changes in runtime behavior (12)
- Highlighting using DisMax will only pick up terms from the main
user query, not boost or filter queries
(klaas).
- SOLR-125: Change default of json.nl to flat, change so that
json.nl only affects items where order matters (facet constraint
listings). Fix JSON output bug for null values. Internal JAVA API:
change most uses of NamedList to SimpleOrderedMap.
(yonik)
- A new method "getSolrQueryParser" has been added to the IndexSchema
class for retrieving a new SolrQueryParser instance with all options
specified in the schema.xml's <solrQueryParser> block set. The
documentation for the SolrQueryParser constructor and its use of
IndexSchema have also been clarified.
(Erik Hatcher and hossman)
- DisMaxRequestHandler's bq, bf, qf, and pf parameters can now accept
multiple values
(klaas).
- Query are re-written before highlighting is performed. This enables
proper highlighting of prefix and wildcard queries
(klaas).
- A meaningful exception is raised when attempting to add a doc missing
a unique id if it is declared in the schema and allowDups=false.
(ryan via klaas)
- SOLR-183: Exceptions with error code 400 are raised when
numeric argument parsing fails. RequiredSolrParams class added
to facilitate checking for parameters that must be present.
(Ryan McKinley, J.J. Larrea via yonik)
- SOLR-179: By default, solr will abort after any severe initialization
errors. This behavior can be disabled by setting:
<abortOnConfigurationError>false</abortOnConfigurationError>
in solrconfig.xml
(ryan)
- The example solrconfig.xml maps /update to XmlUpdateRequestHandler using
the new request dispatcher (SOLR-104). This requires posted content to
have a valid contentType: curl -H 'Content-type:text/xml; charset=utf-8'
The response format matches that of /select and returns standard error
codes. To enable solr1.1 style /update, do not map "/update" to any
handler in solrconfig.xml
(ryan)
- SOLR-231: If a charset is not specified in the contentType,
ContentStream.getReader() will use UTF-8 encoding.
(ryan)
- 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)
- SOLR-128: Upgraded Jetty to the latest stable release 6.1.3
(ryan)
- Optimizations (4)
- 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)
- SOLR-115: Solr now uses BooleanQuery.clauses() instead of
BooleanQuery.getClauses() in any situation where there is no risk of
modifying the original query.
(hossman)
- SOLR-221: Speed up sorted faceting on multivalued fields by ~60%
when the base set consists of a relatively large portion of the
index.
(yonik)
- SOLR-221: Added a facet.enum.cache.minDf parameter which avoids
using the filterCache for terms that match few documents, trading
decreased memory usage for increased query time.
(yonik)
- Bug Fixes (15)
- SOLR-87: Parsing of synonym files did not correctly handle escaped
whitespace such as \r\n\t\b\f.
(yonik)
- SOLR-92: DOMUtils.getText (used when parsing config files) did not
work properly with many DOM implementations when dealing with
"Attributes".
(Ryan McKinley via hossman)
- SOLR-9,SOLR-99: Tighten up sort specification error checking, throw
exceptions for missing sort specifications or a sort on a non-indexed
field.
(Ryan McKinley via yonik)
- SOLR-145: Fix for bug introduced in SOLR-104 where some Exceptions
were being ignored by all "out of the box" RequestHandlers.
(hossman)
- SOLR-166: JNDI solr.home code refactoring. SOLR-104 moved
some JNDI related code to the init method of a Servlet Filter -
according to the Servlet Spec, all Filter's should be initialized
prior to initializing any Servlets, but this is not the case in at
least one Servlet Container (Resin). This "bug fix" refactors
this JNDI code so that it should be executed the first time any
attempt is made to use the solr.home dir.
(Ryan McKinley via hossman)
- SOLR-173: Bug fix to SolrDispatchFilter to reduce "too many open
files" problem was that SolrDispatchFilter was not closing requests
when finished. Also modified ResponseWriters to only fetch a Searcher
reference if necessary for writing out DocLists.
(Ryan McKinley via hossman)
- SOLR-168: Fix display positioning of multiple tokens at the same
position in analysis.jsp
(yonik)
- SOLR-167: The SynonymFilter sometimes generated incorrect offsets when
multi token synonyms were mached in the source text.
(yonik)
- 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)
- SOLR-198: RunExecutableListener always waited for the process to
finish, even when wait="false" was set.
(Koji Sekiguchi via yonik)
- SOLR-207: Changed distribution scripts to remove recursive find
and avoid use of "find -maxdepth" on platforms where it is not
supported.
(yonik)
- SOLR-222: Changing writeLockTimeout in solrconfig.xml did not
change the effective timeout.
(Koji Sekiguchi via yonik)
- Changed the SOLR-104 RequestDispatcher so that /select?qt=xxx can not
access handlers that start with "/". This makes path based authentication
possible for path based request handlers.
(ryan)
- 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)
- SOLR-241: Undefined system properties used in configuration files now
cause a clear message to be logged rather than an obscure exception thrown.
(Koji Sekiguchi via ehatcher)
- Other Changes (2)
- Updated to Lucene 2.1
- Updated to Lucene 2007-05-20_00-04-53
- Status (1)
- 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.
- Upgrading from previous Solr versions (4)
- Older Apache Solr installations can be upgraded by replacing
the relevant war file with the new version. No changes to configuration
files are needed and the index format has not changed.
- The default version of the Solr XML response syntax has been changed to 2.2.
Behavior can be preserved for those clients not explicitly specifying a
version by adding a default to the request handler in solrconfig.xml
- 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>.
Detailed Change List
- New Features (33)
- added support for setting Lucene's positionIncrementGap
- Admin: new statistics for SolrIndexSearcher
- Admin: caches now show config params on stats page
- max() function added to FunctionQuery suite
- postOptimize hook, mirroring the functionallity of the postCommit hook,
but only called on an index optimize.
- Ability to HTTP POST query requests to /select in addition to HTTP-GET
- The default search field may now be overridden by requests to the
standard request handler using the df query parameter.
(Erik Hatcher)
- Added DisMaxRequestHandler and SolrPluginUtils.
(Chris Hostetter)
- Support for customizing the QueryResponseWriter per request
(Mike Baranczak / SOLR-16 / hossman)
- Added KeywordTokenizerFactory
(hossman)
- copyField accepts dynamicfield-like names as the source.
(Darren Erik Vengroff via yonik, SOLR-21)
- new DocSet.andNot(), DocSet.andNotSize()
(yonik)
- Ability to store term vectors for fields.
(Mike Klaas via yonik, SOLR-23)
- New abstract BufferedTokenStream for people who want to write
Tokenizers or TokenFilters that require arbitrary buffering of the
stream.
(SOLR-11 / yonik, hossman)
- New RemoveDuplicatesToken - useful in situations where
synonyms, stemming, or word-deliminater-ing produce identical tokens at
the same position.
(SOLR-11 / yonik, hossman)
- Added highlighting to SolrPluginUtils and implemented in StandardRequestHandler
and DisMaxRequestHandler
(SOLR-24 / Mike Klaas via hossman,yonik)
- SnowballPorterFilterFactory language is configurable via the "language"
attribute, with the default being "English".
(Bertrand Delacretaz via yonik, SOLR-27)
- ISOLatin1AccentFilterFactory, instantiates ISOLatin1AccentFilter to remove accents.
(Bertrand Delacretaz via yonik, SOLR-28)
- JSON, Python, Ruby QueryResponseWriters: use wt="json", "python" or "ruby"
(yonik, SOLR-31)
- 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)
- Made query parser default operator configurable via schema.xml:
<solrQueryParser defaultOperator="AND|OR"/>
The default operator remains "OR".
- JAVA API: new version of SolrIndexSearcher.getDocListAndSet() which takes
flags
(Greg Ludington via yonik, SOLR-39)
- 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)
- 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)
- Simple faceted search support for fields (enumerating terms)
and arbitrary queries added to both StandardRequestHandler and
DisMaxRequestHandler.
(hossman, SOLR-44)
- 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)
- Default operator for query parsing can now be specified with q.op=AND|OR
from the client request, overriding the schema value.
(ehatcher)
- 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)
- 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)
- autoCommit can be specified every so many documents added
(klaas, SOLR-65)
- ${solr.home}/lib directory can now be used for specifying "plugin" jars
(hossman, SOLR-68)
- Support for "Date Math" relative "NOW" when specifying values of a
DateField in a query -- or when adding a document.
(hossman, SOLR-71)
- 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)
- Changes in runtime behavior (11)
- classes reorganized into different packages, package names changed to Apache
- force read of document stored fields in QuerySenderListener
- Solr now looks in ./solr/conf for config, ./solr/data for data
configurable via solr.solr.home system property
- Highlighter params changed to be prefixed with "hl."; allow fragmentsize
customization and per-field overrides on many options
(Andrew May via klaas, SOLR-37)
- Default param values for DisMaxRequestHandler should now be specified
using a '<lst name="defaults">...</lst>' init param, for backwards
compatability all init prams will be used as defaults if an init param
with that name does not exist.
(hossman, SOLR-43)
- The DisMaxRequestHandler now supports multiple occurances of the "fq"
param.
(hossman, SOLR-44)
- FunctionQuery.explain now uses ComplexExplanation to provide more
accurate score explanations when composed in a BooleanQuery.
(hossman, SOLR-25)
- Document update handling locking is much sparser, allowing performance gains
through multiple threads. Large commits also might be faster
(klaas, SOLR-65)
- Lazy field loading can be enabled via a solrconfig directive. This will be faster when
not all stored fields are needed from a document
(klaas, SOLR-52)
- Made admin JSPs return XML and transform them with new XSL stylesheets
(Otis Gospodnetic, SOLR-58)
- If the "echoParams=explicit" request parameter is set, request parameters are copied
to the output. In an XML output, they appear in new <lst name="params"> list inside
the new <lst name="responseHeader"> element, which replaces the old <responseHeader>.
Adding a version=2.1 parameter to the request produces the old format, for backwards
compatibility
(bdelacretaz and yonik, SOLR-59).
- Optimizations (6)
- getDocListAndSet can now generate both a DocList and a DocSet from a
single lucene query.
- BitDocSet.intersectionSize(HashDocSet) no longer generates an intermediate
set
- 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)
- much faster unionSize when one of the sets is a HashDocSet: O(smaller_set_size)
- 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)
- 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 (13)
- Fixed delete-by-id for field types who's indexed form is different
from the printable form (mainly sortable numeric types).
- Added escaping of attribute values in the XML response
(Erik Hatcher)
- Added empty extractTerms() to FunctionQuery to enable use in
a MultiSearcher
(Yonik)
- WordDelimiterFilter sometimes lost token positionIncrement information
- Fix reverse sorting for fields were sortMissingFirst=true
(Rob Staveley, yonik)
- Worked around a Jetty bug that caused invalid XML responses for fields
containing non ASCII chars.
(Bertrand Delacretaz via yonik, SOLR-32)
- WordDelimiterFilter can throw exceptions if configured with both
generate and catenate off.
(Mike Klaas via yonik, SOLR-34)
- Escape '>' in XML output
(because ]]> is illegal in CharData)
- field boosts weren't being applied and doc boosts were being applied to fields
(klaas)
- Multiple-doc update generates well-formed xml
(klaas, SOLR-65)
- Better parsing of pingQuery from solrconfig.xml
(hossman, SOLR-70)
- Fixed bug with "Distribution" page introduced when Versions were
added to "Info" page
(hossman)
- Fixed HTML escaping issues with user input to analysis.jsp and action.jsp
(hossman, SOLR-74)
- Other Changes (15)
- 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
- Modified admin styles to improve display in Internet Explorer
(Greg Ludington via billa, SOLR-6)
- Upgrade to Lucene 2.0 nightly build 2006-07-15, lucene SVN revision 422302,
- Included unique key field name/value (if available) in log message of add
(billa, SOLR-18)
- Updated to Lucene 2.0 nightly build 2006-09-07, SVN revision 462111
- Added javascript to catch empty query in admin query forms (Tomislav Nakic-Alfirevic via billa, SOLR-48
- blackslash escape * in ssh command used in snappuller for zsh compatibility, SOLR-63
- check solr return code in admin scripts, SOLR-62
- Updated to Lucene 2.0 nightly build 2006-11-15, SVN revision 475069
- Removed src/apps containing the legacy "SolrTest" app
(hossman, SOLR-3)
- Simplified index.jsp and form.jsp, primarily by removing/hiding XML
specific params, and adding an option to pick the output type.
(hossman)
- Added new numeric build property "specversion" to allow clean
MANIFEST.MF files
(hossman)
- Added Solr/Lucene versions to "Info" page
(hossman)
- Explicitly set mime-type of .xsl files in web.xml to
application/xslt+xml
(hossman)
- 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)
2006/01/17 Solr open sourced, moves to Apache Incubator