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

搜索引擎

开发平台:

C#

  1. using System;
  2. using System.IO;
  3. using System.Collections;
  4. using Lucene.Net.Analysis;
  5. namespace Lucene.Net.Analysis.XunLongX
  6. {
  7.     /*
  8.           '       迅龙中文分类搜索引擎  v0.6
  9.           '
  10.           '        LGPL  许可发行
  11.           '
  12.           '       宁夏大学  张冬 康彩  zd4004@163.com
  13.           ' 
  14.           '        官网 http://blog.163.com/zd4004/
  15.      */
  16. public class XunLongAnalyzer : Analyzer 
  17. {
  18. //~ Static fields/initializers ---------------------------------------------
  19. /**
  20.   * An array containing some common English words that are not usually
  21.   * useful for searching. and some double-byte interpunctions.....
  22.   */
  23. private static String[] stopWords = 
  24. {
  25. "a", "and", "are", "as", "at", "be",
  26. "but", "by", "for", "if", "in",
  27. "into", "is", "it", "no", "not",
  28. "of", "on", "or", "s", "such", "t",
  29. "that", "the", "their", "then",
  30. "there", "these", "they", "this",
  31. "to", "was", "will", "with", "",
  32. "www"
  33. };
  34. //~ Instance fields --------------------------------------------------------
  35. /** stop word list */
  36. private Hashtable stopTable;
  37. //~ Constructors -----------------------------------------------------------
  38. /// <summary>
  39. /// Builds an analyzer which removes words in STOP_WORDS.
  40. /// </summary>
  41. public XunLongAnalyzer() 
  42. {
  43. stopTable = StopFilter.MakeStopTable(stopWords);
  44. }
  45. /// <summary>
  46. /// Builds an analyzer which removes words in the provided array.
  47. /// </summary>
  48. /// <param name="stopWords">stop word array</param>
  49. public XunLongAnalyzer(String[] stopWords) 
  50. {
  51. stopTable = StopFilter.MakeStopTable(stopWords);
  52. }
  53. //~ Methods ----------------------------------------------------------------
  54. /// <summary>
  55. /// get token stream from input
  56. /// </summary>
  57. /// <param name="fieldName">lucene field name</param>
  58. /// <param name="reader">input reader</param>
  59. /// <returns>Token Stream</returns>
  60. public override sealed TokenStream TokenStream(String fieldName, TextReader reader) 
  61. {
  62. return new StopFilter(new XunLongTokenizer(reader), stopTable);
  63. }
  64. }
  65. }