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

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/xbzhu/p/11826618.html

时间: 2024-10-08 08:21:12

Lucene.Net 3.0.3如何从TokenStream中获取token对象的相关文章

ASP.NET WebApi OWIN 实现 OAuth 2.0(自定义获取 Token)

相关文章:ASP.NET WebApi OWIN 实现 OAuth 2.0 之前的项目实现,Token 放在请求头的 Headers 里面,类似于这样: Accept: application/json Content-Type: application/json Authorization: Bearer pADKsjwMv927u... 虽然这是最标准的实现方式,但有时候我们会面对一些业务变化,比如 Token 要求放在 URL 或是 Post Body 里面,比如这样: https://w

lucene.net 3.0.3、结合盘古分词进行搜索的小例子(转)

lucene.net 3.0.3.结合盘古分词进行搜索的小例子(分页功能) 添加:2013-12-25 更新:2013-12-26 新增分页功能. 更新:2013-12-27 新增按分类查询功能,调整索引行新增记录的图片字段. //封装类 [csharp] view plaincopyprint? using System; using System.Collections.Generic; using System.Linq; using System.Web; using Lucene.Ne

初识Lucene 4.5.0 全文搜索--(二)

上一篇文章初识Lucene 4.5.0--(一)已经介绍了如何创建索引与检索索引.接下来就是删除与更新啦~ 一.删除索引. 原本3.x版本时 IndexWriter 与 IndexReader 都是有删除方法的,让我们先来看看lucene 3.6 api文档中的IndexReader的描述: 从4.0开始已经被删除了,所以现在只能用IndexWriter中的方法来进行删除.有哪些方法呢?继续看文档(lucene 4.5 api): 除了上面的六个外还有一个方法tryDeleteDocument(

让盘古分词支持最新的Lucene.Net 3.0.3

好多年没升级过的Lucene.Net最近居然升级了,到了3.0.3后接口发生了很大变化,原来好多分词库都不能用了,所以上次我把MMSeg给修改了一下支持了Lucene.Net 3.0.3(参考<基于MMSeg算法的中文分词类库>). 然后我知道了.Net下还有一个盘古分词(http://pangusegment.codeplex.com/),但也不支持Lucene.Net 3.0.3,网上也不少人在问,于是就下载了它的最新代码,基于Lucene.Net 3.0.3更新了,顺便把它的词库给放到d

Lucene 4.8.0 发布了,变化一如既往的大,新特性一一解读

10年之前,你是1.0: 10年之后,你是4.8 .放在10年这个时间跨度上看,也许变化就没那么大了. 看看这次发布有哪些变化吧: 1.Apache Lucene 现在要求Java的最低版本为:Java 7 , update 55 :推荐使用 Oracle Java 7 或 OpenJDK 7 ,之前版本的JVM bug 会影响到lucene. 2.Apache Lucene全面兼容 Java 8. 3.所有的索引文件开始存储checksums,在索引合并和读取的时候进行有效性检查.减少出现某个

Lucene中的 Query对象

"Lucene中的 Query对象": 检 索前,需要对检索字符串进行分析,这是由queryparser来完成的.为了保证查询的正确性,最好用创建索引文件时同样的分析器. queryparser解析字符串时,可以指定查询域,实际可以在字符串中指定一个或多个域.例如:“info:电视台 and id:3329”,“info:电视台”,“电视台”,假如不指定默认域,就会在默认域查询. queryparser调用静态方法parse后会返回query的实例,原子查询.例如:“info:电视台

vue-router2.0 组件之间传参及获取动态参数

<li v-for=" el in hotLins" > <router-link :to="{path:'details',query: {id:el.tog_line_id}}"> <img :src="el.image_list[0]"> <h3>{{el.tourism_name}} {{el.tog_line_id}}</h3> <p>{{el.address}}&

Android6.0使用BaiDu地图SDK动态获取定位权限

1.报错原因: 在集成百度地图SDK的时候在手机上无法定位,检查没有任何错误,最后通过搜索才知道是Android版本为6.0的问题,这是因为在Android6.0采用了运行时权限(RuntimePermissions),Android6.0的权限一般分为两种,一种时普通权限,可以直接获取,其它的运行时权限,需要提示用户手动同意之后,才能获取. 失败的原因就是,小米手机MIUI是Android6.0.1,如果不加动态获取权限的代码,是不会提示的,没有得到权限,当然无法定位. 2.解决代码: pri

struts2.0中Action的对象生命周期详解!!(转)

原文出处:http://blog.csdn.net/wxy_g/article/details/2071662 有很多人问Struts2.0中的对象既然都是线程安全的,都不是单例模式,那么它究竟何时创建,何时销毁呢? 这个和struts2.0中的配置有关,我们来看struts.properties ### if specified, the default object factory can be overridden here ### Note: short-hand notation is