Get TermAttribute in TokenStream Lucene.Net

I use Lucene.NET3.0.3 how to get TermAttribute.I try, but I can not get it

here is the source:

Analyzer analyzer = new Lucene.Net.Analysis.Snowball.SnowballAnalyzer(Lucene.Net.Util.Version.LUCENE_30, "English",stopword); TokenStream tokenStream = analyzer.TokenStream("English", new StringReader("How to get TermAttribute")); while (tokenStream.IncrementToken()) { ???How to get TermAttribute } 
+4
source share
2 answers
 var termAttr = tokenStream.GetAttribute<Lucene.Net.Analysis.Tokenattributes.ITermAttribute>(); while(tokenStream.IncrementToken()) { string term = termAttr.Term; } 
+9
source

In Apache Lucene.Net 4.8, you can use this C # code: (.NET Core 2+), where term = termAttr.ToString() contains the token as a string . Full method: PrintTokens(Analyzer analyzer, string fieldName, string text) you can get in GitHub msigut / LuceneNet48Demo .

  var tokenStream = analyzer.GetTokenStream(fieldName, textToAnalyze); var termAttr = tokenStream.GetAttribute<ICharTermAttribute>(); tokenStream.Reset(); while (tokenStream.IncrementToken()) { string term = termAttr.ToString(); } 
0
source

All Articles