【发布时间】:2014-05-19 09:02:29
【问题描述】:
我必须使用 Lucene.NET 更新项目。这是我第一次遇到这个库,我应该将引用更新到新版本。所以我通过 NuGet 处理 Lucene 引用。
但实际上我应该以某种方式更新一些在新版本中消失的方法。
public abstract class AnalyzerView
{
public abstract string Name { get; }
public virtual string GetView(TokenStream tokenStream,out int numberOfTokens)
{
StringBuilder sb = new StringBuilder();
Token token = tokenStream.Next();
numberOfTokens = 0;
while (token != null)
{
numberOfTokens++;
sb.Append(GetTokenView(token));
token = tokenStream.Next();
}
return sb.ToString();
}
protected abstract string GetTokenView(Token token);
}
文档对我来说不是很清楚。据我了解,我应该使用类似
while (tokenStream.IncrementToken()) { ... }
但是如何获得以下令牌对我来说是一个谜。
我在 StackOverflow 上看到了 similar question,但我的问题是我需要获得 Token 而不是 string,因为我有一些使用令牌的代码,比如这个:
public class TermWithOffsetsView : AnalyzerView {
public override string Name {
get { return "Terms With Offsets"; }
}
protected override string GetTokenView(Token token) {
return token.TermText() +
" Start: " + token.StartOffset().ToString().PadLeft(5) +
" End: " + token.EndOffset().ToString().PadLeft(5) +
"\r\n";
}
}
【问题讨论】:
-
我需要获取一个 Token,而不是一个字符串(+我使用的是 lucene.NET,而不是 Java 的)...
标签: c# .net lucene lucene.net