Analyzer.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. namespace Lucene.Net.Analysis
  18. {
  19. /// <summary>An Analyzer builds TokenStreams, which analyze text.  It thus represents a
  20. /// policy for extracting index terms from text.
  21. /// <p>
  22. /// Typical implementations first build a Tokenizer, which breaks the stream of
  23. /// characters from the Reader into raw Tokens.  One or more TokenFilters may
  24. /// then be applied to the output of the Tokenizer.
  25. /// <p>
  26. /// WARNING: You must override one of the methods defined by this class in your
  27. /// subclass or the Analyzer will enter an infinite loop.
  28. /// </summary>
  29. public abstract class Analyzer
  30. {
  31. /// <summary>Creates a TokenStream which tokenizes all the text in the provided
  32. /// Reader.  Default implementation forwards to tokenStream(Reader) for 
  33. /// compatibility with older version.  Override to allow Analyzer to choose 
  34. /// strategy based on document and/or field.  Must be able to handle null
  35. /// field name for backward compatibility. 
  36. /// </summary>
  37. public virtual TokenStream TokenStream(System.String fieldName, System.IO.TextReader reader)
  38. {
  39. // implemented for backward compatibility
  40. return TokenStream(reader);
  41. }
  42. /// <summary>Creates a TokenStream which tokenizes all the text in the provided
  43. /// Reader.  Provided for backward compatibility only.
  44. /// </summary>
  45. /// <deprecated> use tokenStream(String, Reader) instead.
  46. /// </deprecated>
  47. /// <seealso cref="TokenStream(String, Reader)">
  48. /// </seealso>
  49. public virtual TokenStream TokenStream(System.IO.TextReader reader)
  50. {
  51. return TokenStream(null, reader);
  52. }
  53. /// <summary> Invoked before indexing a Field instance if
  54. /// terms have already been added to that field.  This allows custom
  55. /// analyzers to place an automatic position increment gap between
  56. /// Field instances using the same field name.  The default value
  57. /// position increment gap is 0.  With a 0 position increment gap and
  58. /// the typical default token position increment of 1, all terms in a field,
  59. /// including across Field instances, are in successive positions, allowing
  60. /// exact PhraseQuery matches, for instance, across Field instance boundaries.
  61. /// 
  62. /// </summary>
  63. /// <param name="fieldName">Field name being indexed.
  64. /// </param>
  65. /// <returns> position increment gap, added to the next token emitted from {@link #TokenStream(String,Reader)}
  66. /// </returns>
  67. public virtual int GetPositionIncrementGap(System.String fieldName)
  68. {
  69. return 0;
  70. }
  71. }
  72. }