2
* Copyright 2004 The Apache Software Foundation
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
2
* Licensed to the Apache Software Foundation (ASF) under one or more
3
* contributor license agreements. See the NOTICE file distributed with
4
* this work for additional information regarding copyright ownership.
5
* The ASF licenses this file to You under the Apache License, Version 2.0
6
* (the "License"); you may not use this file except in compliance with
7
* the License. You may obtain a copy of the License at
8
9
* http://www.apache.org/licenses/LICENSE-2.0
19
20
namespace Lucene.Net.Analysis
22
/// <summary>Transforms the token stream as per the Porter stemming algorithm.
23
/// Note: the input to the stemming filter must already be in lower case,
24
/// so you will need to use LowerCaseFilter or LowerCaseTokenizer farther
25
/// down the Tokenizer chain in order for this to work properly!
27
/// To use this filter with other analyzers, you'll want to write an
28
/// Analyzer class that sets up the TokenStream chain as you want it.
29
/// To use this with LowerCaseTokenizer, for example, you'd write an
30
/// analyzer like this:
33
/// class MyAnalyzer extends Analyzer {
34
/// public final TokenStream tokenStream(String fieldName, Reader reader) {
35
/// return new PorterStemFilter(new LowerCaseTokenizer(reader));
40
public sealed class PorterStemFilter : TokenFilter
42
private PorterStemmer stemmer;
44
public PorterStemFilter(TokenStream in_Renamed) : base(in_Renamed)
46
stemmer = new PorterStemmer();
49
/// <summary>Returns the next input Token, after being stemmed </summary>
50
public override Token Next()
52
Token token = input.Next();
57
System.String s = stemmer.Stem(token.termText);
58
if ((System.Object) s != (System.Object) token.termText)
59
// Yes, I mean object reference comparison here
23
/// <summary>Transforms the token stream as per the Porter stemming algorithm.
24
/// Note: the input to the stemming filter must already be in lower case,
25
/// so you will need to use LowerCaseFilter or LowerCaseTokenizer farther
26
/// down the Tokenizer chain in order for this to work properly!
28
/// To use this filter with other analyzers, you'll want to write an
29
/// Analyzer class that sets up the TokenStream chain as you want it.
30
/// To use this with LowerCaseTokenizer, for example, you'd write an
31
/// analyzer like this:
34
/// class MyAnalyzer extends Analyzer {
35
/// public final TokenStream tokenStream(String fieldName, Reader reader) {
36
/// return new PorterStemFilter(new LowerCaseTokenizer(reader));
41
public sealed class PorterStemFilter : TokenFilter
43
private PorterStemmer stemmer;
45
public PorterStemFilter(TokenStream in_Renamed) : base(in_Renamed)
47
stemmer = new PorterStemmer();
50
/// <summary>Returns the next input Token, after being stemmed </summary>
51
public override Token Next()
53
Token token = input.Next();
58
System.String s = stemmer.Stem(token.termText);
59
if ((System.Object) s != (System.Object) token.termText)
60
// Yes, I mean object reference comparison here
b'\\ No newline at end of file'