lucenenet-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nightowl...@apache.org
Subject [16/39] lucenenet git commit: Lucene.Net.Collation refactor: member accessibility and documentation comments
Date Sat, 04 Feb 2017 20:32:35 GMT
Lucene.Net.Collation refactor: member accessibility and documentation comments


Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/e67f7979
Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/e67f7979
Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/e67f7979

Branch: refs/heads/api-work
Commit: e67f79794936d68b4742f998d916c79e7dab5dcf
Parents: d390386
Author: Shad Storhaug <shad@shadstorhaug.com>
Authored: Sat Feb 4 22:19:30 2017 +0700
Committer: Shad Storhaug <shad@shadstorhaug.com>
Committed: Sat Feb 4 23:08:21 2017 +0700

----------------------------------------------------------------------
 .../Collation/CollationAttributeFactory.cs      | 55 +++++------
 .../Collation/CollationKeyAnalyzer.cs           | 66 ++++++-------
 .../Collation/CollationKeyFilter.cs             | 97 ++++++++++----------
 .../Collation/CollationKeyFilterFactory.cs      | 87 +++++++++---------
 .../CollatedTermAttributeImpl.cs                |  8 +-
 5 files changed, 157 insertions(+), 156 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucenenet/blob/e67f7979/src/Lucene.Net.Analysis.Common/Collation/CollationAttributeFactory.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Collation/CollationAttributeFactory.cs b/src/Lucene.Net.Analysis.Common/Collation/CollationAttributeFactory.cs
index b057e7d..6e15ad1 100644
--- a/src/Lucene.Net.Analysis.Common/Collation/CollationAttributeFactory.cs
+++ b/src/Lucene.Net.Analysis.Common/Collation/CollationAttributeFactory.cs
@@ -24,32 +24,32 @@ namespace Lucene.Net.Collation
 
     /// <summary>
     /// <para>
-    ///   Converts each token into its <see cref="CollationKey"/>, and then
+    ///   Converts each token into its <see cref="System.Globalization.SortKey"/>,
and then
     ///   encodes the bytes as an index term.
     /// </para>
     /// <para>
-    ///   <strong>WARNING:</strong> Make sure you use exactly the same Collator
at
-    ///   index and query time -- CollationKeys are only comparable when produced by
-    ///   the same Collator.  Since <see cref="RuleBasedCollator"/>s are not
+    ///   <strong>WARNING:</strong> Make sure you use exactly the same <see
cref="Collator"/> at
+    ///   index and query time -- <see cref="System.Globalization.SortKey"/>s are only
comparable when produced by
+    ///   the same <see cref="Collator"/>.  Since <see cref="RuleBasedCollator"/>s
are not
     ///   independently versioned, it is unsafe to search against stored
-    ///   CollationKeys unless the following are exactly the same (best practice is
+    ///   <see cref="System.Globalization.SortKey"/>s unless the following are exactly
the same (best practice is
     ///   to store this information with the index and check that they remain the
     ///   same at query time):
     /// </para>
-    /// <ol>
-    ///   <li>JVM vendor</li>
-    ///   <li>JVM version, including patch version</li>
-    ///   <li>
+    /// <list type="number">
+    ///   <item>JVM vendor</item>
+    ///   <item>JVM version, including patch version</item>
+    ///   <item>
     ///     The language (and country and variant, if specified) of the Locale
     ///     used when constructing the collator via
-    ///     <see cref="Collator#getInstance(Locale)"/>.
-    ///   </li>
-    ///   <li>
-    ///     The collation strength used - see <see cref="Collator#setStrength(int)"/>
-    ///   </li>
-    /// </ol> 
+    ///     <see cref="Collator.Create(System.Globalization.CultureInfo)"/>.
+    ///   </item>
+    ///   <item>
+    ///     The collation strength used - see <see cref="Collator.Strength"/>
+    ///   </item>
+    /// </list> 
     /// <para>
-    ///   The <code>ICUCollationAttributeFactory</code> in the analysis-icu package

+    ///   The <c>ICUCollationAttributeFactory</c> in the analysis-icu package

     ///   uses ICU4J's Collator, which makes its
     ///   version available, thus allowing collation to be versioned independently
     ///   from the JVM.  ICUCollationAttributeFactory is also significantly faster and
@@ -57,7 +57,7 @@ namespace Lucene.Net.Collation
     ///   <a href="http://site.icu-project.org/charts/collation-icu4j-sun"
     ///   >http://site.icu-project.org/charts/collation-icu4j-sun</a> for key
     ///   generation timing and key length comparisons between ICU4J and
-    ///   java.text.Collator over several languages.
+    ///   <see cref="Collator"/> over several languages.
     /// </para>
     /// <para>
     ///   CollationKeys generated by java.text.Collators are not compatible
@@ -75,20 +75,21 @@ namespace Lucene.Net.Collation
 		private readonly AttributeSource.AttributeFactory @delegate;
 
 		/// <summary>
-		/// Create a CollationAttributeFactory, using 
-		/// <see cref="AttributeSource.AttributeFactory#DEFAULT_ATTRIBUTE_FACTORY"/> as the
+		/// Create a <see cref="CollationAttributeFactory"/>, using 
+		/// <see cref="AttributeSource.AttributeFactory.DEFAULT_ATTRIBUTE_FACTORY"/> as the
 		/// factory for all other attributes. </summary>
-		/// <param name="collator"> CollationKey generator </param>
-		public CollationAttributeFactory(Collator collator) : this(AttributeSource.AttributeFactory.DEFAULT_ATTRIBUTE_FACTORY,
collator)
+		/// <param name="collator"> <see cref="System.Globalization.SortKey"/> generator
</param>
+		public CollationAttributeFactory(Collator collator) 
+            : this(AttributeSource.AttributeFactory.DEFAULT_ATTRIBUTE_FACTORY, collator)
 		{
 		}
 
-		/// <summary>
-		/// Create a CollationAttributeFactory, using the supplied Attribute Factory 
-		/// as the factory for all other attributes. </summary>
-		/// <param name="delegate"> Attribute Factory </param>
-		/// <param name="collator"> CollationKey generator </param>
-		public CollationAttributeFactory(AttributeSource.AttributeFactory @delegate, Collator collator)
+        /// <summary>
+        /// Create a <see cref="CollationAttributeFactory"/>, using the supplied Attribute
Factory 
+        /// as the factory for all other attributes. </summary>
+        /// <param name="delegate"> Attribute Factory </param>
+        /// <param name="collator"> <see cref="System.Globalization.SortKey"/>
generator </param>
+        public CollationAttributeFactory(AttributeSource.AttributeFactory @delegate, Collator
collator)
 		{
 			this.@delegate = @delegate;
 			this.collator = collator;

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/e67f7979/src/Lucene.Net.Analysis.Common/Collation/CollationKeyAnalyzer.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Collation/CollationKeyAnalyzer.cs b/src/Lucene.Net.Analysis.Common/Collation/CollationKeyAnalyzer.cs
index 4eabd4d..6ebee3d 100644
--- a/src/Lucene.Net.Analysis.Common/Collation/CollationKeyAnalyzer.cs
+++ b/src/Lucene.Net.Analysis.Common/Collation/CollationKeyAnalyzer.cs
@@ -29,34 +29,34 @@ namespace Lucene.Net.Collation
     ///   Configures <see cref="KeywordTokenizer"/> with <see cref="CollationAttributeFactory"/>.
     /// </para>
     /// <para>
-    ///   Converts the token into its <see cref="java.text.CollationKey"/>, and then
-    ///   encodes the CollationKey either directly or with 
-    ///   <see cref="IndexableBinaryStringTools"/> (see <a href="#version">below</a>),
to allow 
+    ///   Converts the token into its <see cref="System.Globalization.SortKey"/>, and
then
+    ///   encodes the <see cref="System.Globalization.SortKey"/> either directly or
with 
+    ///   <see cref="IndexableBinaryStringTools"/> (see version note below), to allow

     ///   it to be stored as an index term.
     /// </para>
     /// <para>
-    ///   <strong>WARNING:</strong> Make sure you use exactly the same Collator
at
-    ///   index and query time -- CollationKeys are only comparable when produced by
-    ///   the same Collator.  Since <see cref="java.text.RuleBasedCollator"/>s are
not
+    ///   <strong>WARNING:</strong> Make sure you use exactly the same <see
cref="Collator"/> at
+    ///   index and query time -- <see cref="System.Globalization.SortKey"/> are only
comparable when produced by
+    ///   the same <see cref="Collator"/>.  Since <c>java.text.RuleBasedCollators</c>
are not
     ///   independently versioned, it is unsafe to search against stored
-    ///   CollationKeys unless the following are exactly the same (best practice is
+    ///   <see cref="System.Globalization.SortKey"/> unless the following are exactly
the same (best practice is
     ///   to store this information with the index and check that they remain the
     ///   same at query time):
     /// </para>
-    /// <ol>
-    ///   <li>JVM vendor</li>
-    ///   <li>JVM version, including patch version</li>
-    ///   <li>
+    /// <list type="number">
+    ///   <item>JVM vendor</item>
+    ///   <item>JVM version, including patch version</item>
+    ///   <item>
     ///     The language (and country and variant, if specified) of the Locale
     ///     used when constructing the collator via
-    ///     <see cref="Collator#getInstance(java.util.Locale)"/>.
-    ///   </li>
-    ///   <li>
-    ///     The collation strength used - see <see cref="Collator#setStrength(int)"/>
-    ///   </li>
-    /// </ol> 
+    ///     <see cref="Collator.Create(System.Globalization.CultureInfo)"/>.
+    ///   </item>
+    ///   <item>
+    ///     The collation strength used - see <see cref="Collator.Strength"/>
+    ///   </item>
+    /// </list> 
     /// <para>
-    ///   The <code>ICUCollationKeyAnalyzer</code> in the analysis-icu package

+    ///   The <c>ICUCollationKeyAnalyzer</c> in the analysis-icu package 
     ///   uses ICU4J's Collator, which makes its
     ///   its version available, thus allowing collation to be versioned
     ///   independently from the JVM.  ICUCollationKeyAnalyzer is also significantly
@@ -64,21 +64,20 @@ namespace Lucene.Net.Collation
     ///   See <a href="http://site.icu-project.org/charts/collation-icu4j-sun"
     ///   >http://site.icu-project.org/charts/collation-icu4j-sun</a> for key
     ///   generation timing and key length comparisons between ICU4J and
-    ///   java.text.Collator over several languages.
+    ///   <see cref="Collator"/> over several languages.
     /// </para>
     /// <para>
-    ///   CollationKeys generated by java.text.Collators are not compatible
+    ///   CollationKeys generated by <see cref="Collator"/> are not compatible
     ///   with those those generated by ICU Collators.  Specifically, if you use 
     ///   CollationKeyAnalyzer to generate index terms, do not use
     ///   ICUCollationKeyAnalyzer on the query side, or vice versa.
     /// </para>
-    /// <a name="version"/>
     /// <para>You must specify the required <see cref="LuceneVersion"/>
-    /// compatibility when creating CollationKeyAnalyzer:
-    /// <ul>
-    ///   <li> As of 4.0, Collation Keys are directly encoded as bytes. Previous
-    ///   versions will encode the bytes with <see cref="IndexableBinaryStringTools"/>.
-    /// </ul>
+    /// compatibility when creating <see cref="CollationKeyAnalyzer"/>:
+    /// <list type="bullet">
+    ///   <item> As of 4.0, Collation Keys are directly encoded as bytes. Previous
+    ///   versions will encode the bytes with <see cref="IndexableBinaryStringTools"/>.</item>
+    /// </list>
     /// </para>
     /// </summary>
     // LUCENENET TODO: A better option would be to contribute to the icu.net library and
@@ -90,12 +89,12 @@ namespace Lucene.Net.Collation
 		private readonly CollationAttributeFactory factory;
 		private readonly LuceneVersion matchVersion;
 
-		/// <summary>
-		/// Create a new CollationKeyAnalyzer, using the specified collator.
-		/// </summary>
-		/// <param name="matchVersion"> See <a href="#version">above</a> </param>
-		/// <param name="collator"> CollationKey generator </param>
-		public CollationKeyAnalyzer(LuceneVersion matchVersion, Collator collator)
+        /// <summary>
+        /// Create a new <see cref="CollationKeyAnalyzer"/>, using the specified collator.
+        /// </summary>
+        /// <param name="matchVersion"> See <see cref="CollationKeyAnalyzer"/>
</param>
+        /// <param name="collator"> <see cref="System.Globalization.SortKey"/>
generator </param>
+        public CollationKeyAnalyzer(LuceneVersion matchVersion, Collator collator)
 		{
 			this.matchVersion = matchVersion;
 			this.collator = collator;
@@ -103,7 +102,8 @@ namespace Lucene.Net.Collation
 		}
 		
 		[Obsolete("Use <seealso cref=\"CollationKeyAnalyzer#CollationKeyAnalyzer(LuceneVersion,
Collator)\"/> and specify a version instead. This ctor will be removed in Lucene 5.0")]
-		public CollationKeyAnalyzer(Collator collator) : this(LuceneVersion.LUCENE_31, collator)
+		public CollationKeyAnalyzer(Collator collator) 
+            : this(LuceneVersion.LUCENE_31, collator)
 		{
 		}
 

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/e67f7979/src/Lucene.Net.Analysis.Common/Collation/CollationKeyFilter.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Collation/CollationKeyFilter.cs b/src/Lucene.Net.Analysis.Common/Collation/CollationKeyFilter.cs
index 477e524..ae90816 100644
--- a/src/Lucene.Net.Analysis.Common/Collation/CollationKeyFilter.cs
+++ b/src/Lucene.Net.Analysis.Common/Collation/CollationKeyFilter.cs
@@ -23,53 +23,53 @@ namespace Lucene.Net.Collation
      * limitations under the License.
      */
 
-	/// <summary>
-	/// <para>
-	///   Converts each token into its <see cref="java.text.CollationKey"/>, and then
-	///   encodes the CollationKey with <see cref="IndexableBinaryStringTools"/>, to allow

-	///   it to be stored as an index term.
-	/// </para>
-	/// <para>
-	///   <strong>WARNING:</strong> Make sure you use exactly the same Collator
at
-	///   index and query time -- CollationKeys are only comparable when produced by
-	///   the same Collator.  Since <see cref="java.text.RuleBasedCollator"/>s are not
-	///   independently versioned, it is unsafe to search against stored
-	///   CollationKeys unless the following are exactly the same (best practice is
-	///   to store this information with the index and check that they remain the
-	///   same at query time):
-	/// </para>
-	/// <ol>
-	///   <li>JVM vendor</li>
-	///   <li>JVM version, including patch version</li>
-	///   <li>
-	///     The language (and country and variant, if specified) of the Locale
-	///     used when constructing the collator via
-	///     <see cref="Collator#getInstance(CultureInfo)"/>.
-	///   </li>
-	///   <li>
-	///     The collation strength used - see <see cref="Collator#setStrength(int)"/>
-	///   </li>
-	/// </ol> 
-	/// <para>
-	///   The <code>ICUCollationKeyFilter</code> in the analysis-icu package 
-	///   uses ICU4J's Collator, which makes its
-	///   version available, thus allowing collation to be versioned independently
-	///   from the JVM.  ICUCollationKeyFilter is also significantly faster and
-	///   generates significantly shorter keys than CollationKeyFilter.  See
-	///   <a href="http://site.icu-project.org/charts/collation-icu4j-sun"
-	///   >http://site.icu-project.org/charts/collation-icu4j-sun</a> for key
-	///   generation timing and key length comparisons between ICU4J and
-	///   java.text.Collator over several languages.
-	/// </para>
-	/// <para>
-	///   CollationKeys generated by java.text.Collators are not compatible
-	///   with those those generated by ICU Collators.  Specifically, if you use 
-	///   CollationKeyFilter to generate index terms, do not use
-	///   ICUCollationKeyFilter on the query side, or vice versa.
-	/// </para> </summary>
-	/// @deprecated Use <see cref="CollationAttributeFactory"/> instead, which encodes
-	///  terms directly as bytes. This filter will be removed in Lucene 5.0 
-	[Obsolete("Use <seealso cref=\"CollationAttributeFactory\"/> instead, which encodes")]
+    /// <summary>
+    /// <para>
+    ///   Converts each token into its <see cref="System.Globalization.SortKey"/>,
and then
+    ///   encodes the <see cref="System.Globalization.SortKey"/> with <see cref="IndexableBinaryStringTools"/>,
to allow 
+    ///   it to be stored as an index term.
+    /// </para>
+    /// <para>
+    ///   <strong>WARNING:</strong> Make sure you use exactly the same <see
cref="Collator"/> at
+    ///   index and query time -- <see cref="System.Globalization.SortKey"/> are only
comparable when produced by
+    ///   the same <see cref="Collator"/>.  Since <c>java.text.RuleBasedCollators</c>
are not
+    ///   independently versioned, it is unsafe to search against stored
+    ///   <see cref="System.Globalization.SortKey"/> unless the following are exactly
the same (best practice is
+    ///   to store this information with the index and check that they remain the
+    ///   same at query time):
+    /// </para>
+    /// <list type="number">
+    ///   <item>JVM vendor</item>
+    ///   <item>JVM version, including patch version</item>
+    ///   <item>
+    ///     The language (and country and variant, if specified) of the Locale
+    ///     used when constructing the collator via
+    ///     <see cref="Collator.Create(System.Globalization.CultureInfo)"/>.
+    ///   </item>
+    ///   <item>
+    ///     The collation strength used - see <see cref="Collator.Strength"/>
+    ///   </item>
+    /// </list> 
+    /// <para>
+    ///   The <c>ICUCollationKeyFilter</c> in the analysis-icu package 
+    ///   uses ICU4J's Collator, which makes its
+    ///   version available, thus allowing collation to be versioned independently
+    ///   from the JVM.  ICUCollationKeyFilter is also significantly faster and
+    ///   generates significantly shorter keys than CollationKeyFilter.  See
+    ///   <a href="http://site.icu-project.org/charts/collation-icu4j-sun"
+    ///   >http://site.icu-project.org/charts/collation-icu4j-sun</a> for key
+    ///   generation timing and key length comparisons between ICU4J and
+    ///   java.text.Collator over several languages.
+    /// </para>
+    /// <para>
+    ///   CollationKeys generated by java.text.Collators are not compatible
+    ///   with those those generated by ICU Collators.  Specifically, if you use 
+    ///   CollationKeyFilter to generate index terms, do not use
+    ///   ICUCollationKeyFilter on the query side, or vice versa.
+    /// </para> </summary>
+    /// @deprecated Use <see cref="CollationAttributeFactory"/> instead, which encodes
+    ///  terms directly as bytes. This filter will be removed in Lucene 5.0 
+    [Obsolete("Use CollationAttributeFactory instead, which encodes terms directly as bytes.
This filter will be removed in Lucene 5.0.")]
     // LUCENENET TODO: A better option would be to contribute to the icu.net library and
     // make it CLS compliant (at least the parts of it we use)
     [CLSCompliant(false)]
@@ -80,7 +80,8 @@ namespace Lucene.Net.Collation
 
 		/// <param name="input"> Source token stream </param>
 		/// <param name="collator"> CollationKey generator </param>
-		public CollationKeyFilter(TokenStream input, Collator collator) : base(input)
+		public CollationKeyFilter(TokenStream input, Collator collator) 
+            : base(input)
 		{
 			this.collator = collator;
 			this.termAtt = this.AddAttribute<ICharTermAttribute>();

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/e67f7979/src/Lucene.Net.Analysis.Common/Collation/CollationKeyFilterFactory.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Collation/CollationKeyFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Collation/CollationKeyFilterFactory.cs
index d5e53a1..45bb1e1 100644
--- a/src/Lucene.Net.Analysis.Common/Collation/CollationKeyFilterFactory.cs
+++ b/src/Lucene.Net.Analysis.Common/Collation/CollationKeyFilterFactory.cs
@@ -7,7 +7,6 @@ using System;
 using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
-using System.Linq;
 using System.Text;
 
 namespace Lucene.Net.Collation
@@ -29,49 +28,49 @@ namespace Lucene.Net.Collation
      * limitations under the License.
      */
 
-	/// <summary>
-	/// Factory for <see cref="CollationKeyFilter"/>.
-	/// <para>
-	/// This factory can be created in two ways: 
-	/// <ul>
-	///  <li>Based upon a system collator associated with a Locale.</li>
-	///  <li>Based upon a tailored ruleset.</li>
-	/// </ul>
-	/// </para>
-	/// <para>
-	/// Using a System collator:
-	/// <ul>
-	///  <li>language: ISO-639 language code (mandatory)</li>
-	///  <li>country: ISO-3166 country code (optional)</li>
-	///  <li>variant: vendor or browser-specific code (optional)</li>
-	///  <li>strength: 'primary','secondary','tertiary', or 'identical' (optional)</li>
-	///  <li>decomposition: 'no','canonical', or 'full' (optional)</li>
-	/// </ul>
-	/// </para>
-	/// <para>
-	/// Using a Tailored ruleset:
-	/// <ul>
-	///  <li>custom: UTF-8 text file containing rules supported by RuleBasedCollator (mandatory)</li>
-	///  <li>strength: 'primary','secondary','tertiary', or 'identical' (optional)</li>
-	///  <li>decomposition: 'no','canonical', or 'full' (optional)</li>
-	/// </ul>
-	/// 
-	/// <pre class="prettyprint" >
-	/// &lt;fieldType name="text_clltnky" class="solr.TextField" positionIncrementGap="100"&gt;
-	///   &lt;analyzer&gt;
-	///     &lt;tokenizer class="solr.KeywordTokenizerFactory"/&gt;
-	///     &lt;filter class="solr.CollationKeyFilterFactory" language="ja" country="JP"/&gt;
-	///   &lt;/analyzer&gt;
-	/// &lt;/fieldType&gt;</code>
-	/// 
-	/// </para>
-	/// </summary>
-	/// <see cref="Collator"></seealso>
-	/// <see cref="CultureInfo"></seealso>
-	/// <see cref="RuleBasedCollator">
-	/// @since solr 3.1 </seealso>
-	/// @deprecated use <see cref="CollationKeyAnalyzer"/> instead. 
-	[Obsolete("use <seealso cref=\"CollationKeyAnalyzer\"/> instead.")]
+    /// <summary>
+    /// Factory for <see cref="CollationKeyFilter"/>.
+    /// <para>
+    /// This factory can be created in two ways: 
+    /// <list type="bullet">
+    ///  <item>Based upon a system collator associated with a <see cref="System.Globalization.CultureInfo"/>.</item>
+    ///  <item>Based upon a tailored ruleset.</item>
+    /// </list>
+    /// </para>
+    /// <para>
+    /// Using a System collator:
+    /// <list type="bullet">
+    ///  <item>language: ISO-639 language code (mandatory)</item>
+    ///  <item>country: ISO-3166 country code (optional)</item>
+    ///  <item>variant: vendor or browser-specific code (optional)</item>
+    ///  <item>strength: 'primary','secondary','tertiary', or 'identical' (optional)</item>
+    ///  <item>decomposition: 'no','canonical', or 'full' (optional)</item>
+    /// </list>
+    /// </para>
+    /// <para>
+    /// Using a Tailored ruleset:
+    /// <list type="bullet">
+    ///  <item>custom: UTF-8 text file containing rules supported by RuleBasedCollator
(mandatory)</item>
+    ///  <item>strength: 'primary','secondary','tertiary', or 'identical' (optional)</item>
+    ///  <item>decomposition: 'no','canonical', or 'full' (optional)</item>
+    /// </list>
+    /// 
+    /// <code>
+    /// &lt;fieldType name="text_clltnky" class="solr.TextField" positionIncrementGap="100"&gt;
+    ///   &lt;analyzer&gt;
+    ///     &lt;tokenizer class="solr.KeywordTokenizerFactory"/&gt;
+    ///     &lt;filter class="solr.CollationKeyFilterFactory" language="ja" country="JP"/&gt;
+    ///   &lt;/analyzer&gt;
+    /// &lt;/fieldType&gt;</code>
+    /// 
+    /// </para>
+    /// </summary>
+    /// <seealso cref="Collator"/>
+    /// <seealso cref="CultureInfo"/>
+    /// <seealso cref="RuleBasedCollator"/>
+    /// @since solr 3.1
+    /// @deprecated use <see cref="CollationKeyAnalyzer"/> instead. 
+    [Obsolete("use <seealso cref=\"CollationKeyAnalyzer\"/> instead.")]
 	public class CollationKeyFilterFactory : TokenFilterFactory, IMultiTermAwareComponent, IResourceLoaderAware
 	{
 		private Collator collator;

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/e67f7979/src/Lucene.Net.Analysis.Common/Collation/TokenAttributes/CollatedTermAttributeImpl.cs
----------------------------------------------------------------------
diff --git a/src/Lucene.Net.Analysis.Common/Collation/TokenAttributes/CollatedTermAttributeImpl.cs
b/src/Lucene.Net.Analysis.Common/Collation/TokenAttributes/CollatedTermAttributeImpl.cs
index ceebafb..05333ed 100644
--- a/src/Lucene.Net.Analysis.Common/Collation/TokenAttributes/CollatedTermAttributeImpl.cs
+++ b/src/Lucene.Net.Analysis.Common/Collation/TokenAttributes/CollatedTermAttributeImpl.cs
@@ -33,13 +33,13 @@ namespace Lucene.Net.Collation.TokenAttributes
 		private readonly Collator collator;
 
 		/// <summary>
-		/// Create a new CollatedTermAttributeImpl </summary>
+		/// Create a new <see cref="CollatedTermAttributeImpl"/> </summary>
 		/// <param name="collator"> Collation key generator </param>
 		public CollatedTermAttributeImpl(Collator collator)
 		{
-			// clone in case JRE doesn't properly sync,
-			// or to reduce contention in case they do
-			this.collator = collator;
+            // clone in case JRE doesn't properly sync,
+            // or to reduce contention in case they do
+            this.collator = (Collator)collator.Clone();
 		}
 
 		public override void FillBytesRef()


Mime
View raw message