StandardAnalyzer.cs
上传用户:zhangkuixh
上传日期:2013-09-30
资源大小:5473k
文件大小:3k
源码类别:

搜索引擎

开发平台:

C#

  1. /*
  2.  * Copyright 2004 The Apache Software Foundation
  3.  * 
  4.  * Licensed under the Apache License, Version 2.0 (the "License");
  5.  * you may not use this file except in compliance with the License.
  6.  * You may obtain a copy of the License at
  7.  * 
  8.  * http://www.apache.org/licenses/LICENSE-2.0
  9.  * 
  10.  * Unless required by applicable law or agreed to in writing, software
  11.  * distributed under the License is distributed on an "AS IS" BASIS,
  12.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13.  * See the License for the specific language governing permissions and
  14.  * limitations under the License.
  15.  */
  16. using System;
  17. using Lucene.Net.Analysis;
  18. namespace Lucene.Net.Analysis.Standard
  19. {
  20. /// <summary> Filters {@link StandardTokenizer} with {@link StandardFilter}, {@link
  21. /// LowerCaseFilter} and {@link StopFilter}, using a list of English stop words.
  22. /// 
  23. /// </summary>
  24. /// <version>  $Id: StandardAnalyzer.java 219090 2005-07-14 20:36:28Z dnaber $
  25. /// </version>
  26. public class StandardAnalyzer : Analyzer
  27. {
  28. private System.Collections.Hashtable stopSet;
  29. /// <summary>An array containing some common English words that are usually not
  30. /// useful for searching. 
  31. /// </summary>
  32. public static readonly System.String[] STOP_WORDS;
  33. /// <summary>Builds an analyzer with the default stop words ({@link #STOP_WORDS}). </summary>
  34. public StandardAnalyzer() : this(STOP_WORDS)
  35. {
  36. }
  37. /// <summary>Builds an analyzer with the given stop words. </summary>
  38. public StandardAnalyzer(System.Collections.Hashtable stopWords)
  39. {
  40. stopSet = stopWords;
  41. }
  42. /// <summary>Builds an analyzer with the given stop words. </summary>
  43. public StandardAnalyzer(System.String[] stopWords)
  44. {
  45. stopSet = StopFilter.MakeStopSet(stopWords);
  46. }
  47. /// <summary>Builds an analyzer with the stop words from the given file.</summary>
  48. /// <seealso cref="WordlistLoader.GetWordSet(File)">
  49. /// </seealso>
  50. public StandardAnalyzer(System.IO.FileInfo stopwords)
  51. {
  52. stopSet = WordlistLoader.GetWordSet(stopwords);
  53. }
  54. /// <summary>Builds an analyzer with the stop words from the given reader.</summary>
  55. /// <seealso cref="WordlistLoader.GetWordSet(Reader)">
  56. /// </seealso>
  57. public StandardAnalyzer(System.IO.TextReader stopwords)
  58. {
  59. stopSet = WordlistLoader.GetWordSet(stopwords);
  60. }
  61. /// <summary>Constructs a {@link StandardTokenizer} filtered by a {@link
  62. /// StandardFilter}, a {@link LowerCaseFilter} and a {@link StopFilter}. 
  63. /// </summary>
  64. public override TokenStream TokenStream(System.String fieldName, System.IO.TextReader reader)
  65. {
  66. TokenStream result = new StandardTokenizer(reader);
  67. result = new StandardFilter(result);
  68. result = new LowerCaseFilter(result);
  69. result = new StopFilter(result, stopSet);
  70. return result;
  71. }
  72. static StandardAnalyzer()
  73. {
  74. STOP_WORDS = StopAnalyzer.ENGLISH_STOP_WORDS;
  75. }
  76. }
  77. }