23 using System.Collections.Generic;
25 namespace Lucene.Net.Analysis.Compound
47 int minWordSize,
int minSubwordSize,
int maxSubwordSize,
bool onlyLongestMatch)
48 : base(input, dictionary, minWordSize, minSubwordSize, maxSubwordSize, onlyLongestMatch)
59 : base(input, dictionary)
71 : base(input, dictionary)
87 int minWordSize,
int minSubwordSize,
int maxSubwordSize,
bool onlyLongestMatch)
88 : base(input, dictionary, minWordSize, minSubwordSize, maxSubwordSize, onlyLongestMatch)
93 protected override void DecomposeInternal(
Token token)
101 char[] lowerCaseTermBuffer = MakeLowerCaseCopy(token.
TermBuffer());
103 for (
int i = 0; i < token.
TermLength() - this.minSubwordSize; ++i)
105 Token longestMatchToken = null;
106 for (
int j = this.minSubwordSize - 1; j < this.maxSubwordSize; ++j)
112 if (dictionary.Contains(lowerCaseTermBuffer, i, j))
114 if (this.onlyLongestMatch)
116 if (longestMatchToken != null)
120 longestMatchToken = CreateToken(i, j, token);
125 longestMatchToken = CreateToken(i, j, token);
130 tokens.AddLast(CreateToken(i, j, token));
134 if (this.onlyLongestMatch && longestMatchToken != null)
136 tokens.AddLast(longestMatchToken);