LUCENE-2055: Add documentation noting that the Dutch and French stemmers
in contrib/analyzers do not implement the Snowball algorithm correctly,
and recommend to use the equivalents in contrib/snowball if possible.(Robert Muir, Uwe Schindler, Simon Willnauer)

LUCENE-2653: Add documentation noting that ThaiWordFilter will not work
as expected on all JRE's. For example, on an IBM JRE, it does nothing.(Robert Muir)

LUCENE-2108: Spellchecker now safely supports concurrent modifications to
the spell-index. Threads can safely obtain term suggestions while the spell-
index is rebuild, cleared or reset. Internal IndexSearcher instances remain
open until the last thread accessing them releases the reference.(Simon Willnauer)

LUCENE-2002: Add required Version matchVersion argument when
constructing ComplexPhraseQueryParser and default (as of 2.9)
enablePositionIncrements to true to match StandardAnalyzer's
default. Also added required matchVersion to most of the analyzers(Uwe Schindler, Mike McCandless)

LUCENE-1963: ArabicAnalyzer now lowercases before checking the stopword
list. This has no effect on Arabic text, but if you are using a custom
stopword list that contains some non-Arabic words, you'll need to fully
reindex.(DM Smith via Robert Muir)

LUCENE-2014: SmartChineseAnalyzer did not properly clear attributes
in WordTokenFilter. If enablePositionIncrements is set for StopFilter,
then this could create invalid position increments, causing IndexWriter
to crash.(Robert Muir, Uwe Schindler)

LUCENE-2013: SpanRegexQuery does not work with QueryScorer.(Benjamin Keil via Mark Miller)

LUCENE-1505: Local lucene now uses org.apache.lucene.util.NumericUtils for all
number conversion. You'll need to fully re-index any previously created indexes.
This isn't a break in back-compatibility because local Lucene has not yet
been released.(Mike McCandless)

LUCENE-1758: ArabicAnalyzer now uses the light10 algorithm, has a refined
default stopword list, and lowercases non-Arabic text.
You'll need to fully re-index any previously created indexes. This isn't a
break in back-compatibility because ArabicAnalyzer has not yet been
released.(Robert Muir)

LUCENE-1695: Update the Highlighter to use the new TokenStream API. This issue breaks backwards
compatibility with some public classes. If you have implemented custom Fragmenters or Scorers,
you will need to adjust them to work with the new TokenStream API. Rather than getting passed a
Token at a time, you will be given a TokenStream to init your impl with - store the Attributes
you are interested in locally and access them on each call to the method that used to pass a new
Token. Look at the included updated impls for examples.(Mark Miller)

LUCENE-1460: Change contrib TokenStreams/Filters to use the new
TokenStream API.(Robert Muir, Michael Busch)

LUCENE-1775, LUCENE-1903: Change remaining TokenFilters (shingle, prefix-suffix)
to use the new TokenStream API. ShingleFilter is much more efficient now,
it clones much less often and computes the tokens mostly on the fly now.
Also added more tests.(Robert Muir, Michael Busch, Uwe Schindler, Chris Harris)

LUCENE-1685: The position aware SpanScorer has become the default scorer
for Highlighting. The SpanScorer implementation has replaced QueryScorer
and the old term highlighting QueryScorer has been renamed to
QueryTermScorer. Multi-term queries are also now expanded by default. If
you were previously rewriting the query for multi-term query highlighting,
you should no longer do that (unless you switch to using QueryTermScorer).
The SpanScorer API (now QueryScorer) has also been improved to more closely
match the API of the previous QueryScorer implementation.(Mark Miller)

LUCENE-1793: Deprecate the custom encoding support in the Greek and Russian
Analyzers. If you need to index text in these encodings, please use Java's
character set conversion facilities (InputStreamReader, etc) during I/O,
so that Lucene can analyze this text as Unicode instead.(Robert Muir)

LUCENE-1683: Fixed JavaUtilRegexCapabilities (an impl used by
RegexQuery) to use Matcher.matches() not Matcher.lookingAt() so
that the regexp must match the entire string, not just a prefix.(Trejkaz via Mike McCandless)

LUCENE-1531: Added support for BoostingTermQuery to XML query parser.(Karl Wettin)

LUCENE-1435: Added contrib/collation, a CollationKeyFilter
allowing you to convert tokens into CollationKeys encoded using
IndexableBinaryStringTools. This allows for faster RangeQuery when
a field needs to use a custom Collator.(Steven Rowe via Mike
McCandless)

LUCENE-1745: Added constructors to JakartaRegexpCapabilities and
JavaUtilRegexCapabilities as well as static flags to support
configuring a RegexCapabilities implementation with the
implementation-specific modifier flags. Allows for callers to
customize the RegexQuery using the implementation-specific options
and fine tune how regular expressions are compiled and
matched.(Marc Zampetti zampettim@aim.com via Mike McCandless)

LUCENE-1567: Added a new QueryParser framework, that allows
implementing a new query syntax in a flexible and efficient way.
This new QueryParser will be moved to Lucene's core in release
3.0 and will then replace the current core QueryParser, which
has been deprecated with this patch.(Luis Alves and Adriano Campos via Michael Busch)

LUCENE-1486: Added ComplexPhraseQueryParser, an extension of QueryParser
that allows a subset of the Lucene query language to be embedded in
PhraseQuerys. Wildcard, Range, and Fuzzy queries, as well as limited
boolean logic, can be used within quote operators with this parser, ie:
"(jo* -john) smyth~".(Mark Harwood via Mark Miller)

LUCENE-1728: Split contrib/analyzers into common and smartcn modules.
Contrib/analyzers now builds an additional lucene-smartcn Jar file. All
smartcn classes are not included in the lucene-analyzers JAR file.(Robert Muir via Simon Willnauer)