Lucene.Net 3.0.3如何从TokenStream中获取token对象

news/2024/8/21 7:40:48

Lucene.Net最高版本为3.0.3,并且apache已经不再提供Lucene.Net的更新,没仔细研究过Lucene.Net的所有版本,Lucene.Net3.0.3遍历TokenStream获取Token对象,已经和以前的版本有了很大的区别,很多方法都已经删除了或者过时。
 以前版本的Lucene.Net从TokenStream中获取Token时调用Next方法就行了,源代码如下

public void ReusableTokenStream2()
        {
            string testwords = "web开发网";
            SimpleAnalyzer simple = new SimpleAnalyzer();
            TokenStream ts = simple.ReusableTokenStream("", new StringReader(testwords));
            Token token;
            while ((token = ts.Next()) != null)
            {
                Console.WriteLine(token.TermText());
            }
            ts.Close();
        }

  但是在Lucene.Net3.0.3中TokenStream已经不存在Next方法,而是需要ITermAttribute属性接口来遍历。源代码如下

  public void ReusableTokenStream3()
        {
            Lucene.Net.Analysis.Standard.StandardAnalyzer a = new Lucene.Net.Analysis.Standard.StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30);
            string s = "web开发网";
            System.IO.StringReader reader = new System.IO.StringReader(s);
            Lucene.Net.Analysis.TokenStream ts = a.TokenStream(s, reader);
            bool hasnext = ts.IncrementToken();
            Lucene.Net.Analysis.Tokenattributes.ITermAttribute ita;
            while (hasnext)
            {
                ita = ts.GetAttribute<Lucene.Net.Analysis.Tokenattributes.ITermAttribute>();
                Console.WriteLine(ita.Term);
                hasnext = ts.IncrementToken();
            }
            ts.CloneAttributes();
            reader.Close();
            a.Close();
            Console.ReadKey();
        }

 

转载于:https://www.cnblogs.com/GarsonZhang/p/10544526.html


http://www.niftyadmin.cn/n/3565948.html

相关文章

【Python】 基于秘钥的对称加密

【Crypto】 关于用python进行信息的加密&#xff0c;类似的解决方案有很多比如用base64编码进行encode&#xff0c;再或者是hashlib来进行hash。但是还缺少一种明明场景很简单的解决方案&#xff0c;就是把利用一个秘钥&#xff0c;把一段明文加密然后用同一个秘钥可以把密文解…

使用wxWidgets编程——第一步

译者注&#xff1a;出于个人对wxWindgets的爱好&#xff0c;翻译了此文&#xff0c;总共计8章。在翻译过程中&#xff0c;力求忠实于原文的表达方法。说真的中西方的表达方式真的有很大不同&#xff0c;单独看一个句子是没错误&#xff0c;可放联系上下文&#xff0c;就根本不是…

位图是位的矩形数组

位图是位的矩形数组

python基础 —— 第一个python程序

第一个python程序 编写: hello.py 执行python程序 $ python3 文件路径名.py 常用的文件后缀: .py python语言后缀 .c C语言 .cpp/.cc/.cxx C语言后缀 .java Java语言后缀 在python交互模式下编写并执行代码 进入交互模式:$ python3 <回车&…

设备内容

当您想在一个图形输出设备&#xff08;诸如屏幕或者打印机&#xff09;上绘图时&#xff0c;您首先必须获得一个设备内容&#xff08;或者DC&#xff09;的句柄。

搭建跨平台编程环境Code::Blocks+wxWidgets

这里以目前最新的Code::Blocks 1.0rc2和wxWidgets 2.6.2为例&#xff0c;分别介绍Windows平台和FreeBSD平台下如何搭建Code::BlockswxWidgets环境&#xff0c;其它平台方法可类推。 Windows下 到Code::Blocks官方网站http://www.codeblocks.org下载Code::BlocksMingGW安装包&am…

035搜索插入位置

1 #include "000库函数.h"2 3 //第一眼&#xff0c;感觉没什么考虑算法的&#xff0c;就普通做就好了4 //又因为是有序 的&#xff0c;故使用二分法最好了【别再太真爱用遍历&#xff0c;傻子才会一上来就遍历】 12ms5 class Solution {6 public:7 int search…

取得备内容句柄的方法

最常用的取得并释放设备内容句柄的方法是&#xff0c;在处理WM_PAINT消息时&#xff0c;使用BeginPaint和EndPaint呼叫hdc BeginPaint (hwnd, &ps) ;其它行程序EndPaint (hwnd, &ps) ;Windows程序还可以在处理非WM_PAINT消息时取得设备内容句柄&#xff1a; hdc GetD…