lucene通过tokenstream显示分词信息「建议收藏」

lucene通过tokenstream显示分词信息「建议收藏」publicclassAnalyzerUtil{ publicstaticvoidmain(String[]args){ StandardAnalyzersa=newStandardAnalyzer(Version.LUCENE_45); Stringstr=”Iamcomefromjiangxifengchengtongtian.thisi

大家好,又见面了,我是你们的朋友全栈君。

public class AnalyzerUtil {
	public static void main(String[] args) {
		StandardAnalyzer sa=new StandardAnalyzer(Version.LUCENE_45);
		String str="I am come from jiangxi fengcheng tongtian . this is a dog";
		TokenStream ts=null;
		try {
			ts=sa.tokenStream("content", new StringReader(str));
			CharTermAttribute cta=ts.addAttribute(CharTermAttribute.class);
			ts.reset(); 
			while(ts.incrementToken())
			{
				//CharTermAttribute cta=ts.getAttribute(CharTermAttribute.class);
				System.out.println(cta);
			}
			ts.end();
			/*while(ts.incrementToken()){
				System.out.println(cta);
			}*/
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(ts!=null)
				try {
					ts.close();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
		}
	}
}

输出:

i
am
come
from
beijing
dog

 

reset():This method is called by a consumer before it begins consumption using incrementToken(). 

 

如果没有加上ts.reset();会报空指针异常。如:

Exception in thread "main" java.lang.NullPointerException
	at org.apache.lucene.analysis.standard.StandardTokenizerImpl.zzRefill(StandardTokenizerImpl.java:921)
	at org.apache.lucene.analysis.standard.StandardTokenizerImpl.getNextToken(StandardTokenizerImpl.java:1128)
	at org.apache.lucene.analysis.standard.StandardTokenizer.incrementToken(StandardTokenizer.java:173)
	at org.apache.lucene.analysis.standard.StandardFilter.incrementToken(StandardFilter.java:49)
	at org.apache.lucene.analysis.core.LowerCaseFilter.incrementToken(LowerCaseFilter.java:54)
	at org.apache.lucene.analysis.util.FilteringTokenFilter.incrementToken(FilteringTokenFilter.java:82)
	at com.lucene.analyzer.AnalyzerUtil.main(AnalyzerUtil.java:24)

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/163120.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • vdbench配置说明[通俗易懂]

    vdbench配置说明[通俗易懂]一、前言1、介绍 vdbench是一个I/O工作负载生成器,通常用于验证数据完整性和度量直接附加(或网络连接)存储性能。它可以运行在windows、linux环境,可用于测试文件系统或块设备基准性能。2、版本包获取vdbench版本包下载链接:http://download.oracle.com/otn/utilities_drivers/vdbench/vdbench50406.zipjdk版本包下载链接(windows):https://download.oracle.com/

  • mac全选文字的快捷键_Mac文本的快捷键 你晓得否?

    mac全选文字的快捷键_Mac文本的快捷键 你晓得否?我们在MAC电脑上码字的时候,经常会遇到需要对某段文字进行修改或者操作的情况,相信很多人的做法是用鼠标去移动光标快速定位,如果字数篇幅比较小也是可以的,但是如果遇到大篇幅的文章,一点点的用鼠标去找会非常麻烦,今天我就教大家几个MAC文本快捷键,让你在最短的时间内把光标移动到你想要的位置,提高在电脑上码字的效率。1、全文&段落定位目标位置比较远的时候,需要对光标远程定位,下面的组合键可以帮到…

  • 【Win10系统】Win10系统无线网消失,更改适配器只有以太网,找不到WLAN怎么解决?

    【Win10系统】Win10系统无线网消失,更改适配器只有以太网,找不到WLAN怎么解决?已经快三天了,不想重装系统,前天早上起床打开电脑突然发现右下角网络只有一个飞行模式,旁边的WLAN消失了,到网络属性中更改适配器设置也没找到,几乎试了网上所有的解决办法。1.网络重置2.cmd命令netshwinsockreset3.关机-断电-拔电池或者插拔网卡(未尝试,还要拆螺丝,麻烦)4.services.msc启动那几个服务项5.开飞行模式,重启,关飞行模式6.CClea…

  • Navicat for oracle创建数据库

    Navicat for oracle创建数据库前言其实在Oracle中的概念并不是创建数据库,而是创建一个表空间,然后再创建一个用户,设置该用户的默认表空间为我们新创建的表空间,这些操作之后,便和你之前用过的mysql数据库创建完数据库一模一样了(如果你用过mysql的话,当然如果Oracle是你用的第一个数据库系统,那上面这段话其实看不看并不重要)。但是,鉴于很多用过mysql的用户,在刚开始使用Oracle的时候都会不知道如何创建数据…

  • App 抓包-Fiddler简单使用教程

    App 抓包-Fiddler简单使用教程App抓包-Fiddler简单使用教程环境说明Windows10家庭版小米10MUUI12.5.3稳定版FiddlerEverywhere2.1.1注意Fiddler在进行品牌升级后,推出了多款同类产品,虽然基础功能都相同,但各有偏重,在使用上也存在一些差异。比如博主早期使用过的Fiddler绿色版(对应现在的FiddlerClassic)在操作上和本博客介绍的FiddlerEverywhere几乎完全不同。目标使用Fiddle

  • csgo所有开箱网站_csgo国外开箱网站

    csgo所有开箱网站_csgo国外开箱网站CSGO国内开箱网站大全收录incsgo官网,skinsdog官网,coolkaixiang官网,88steam官网,Box818官网,Piggycase官网,Yskins官网incsgo国内CSGO饰品皮肤开箱网站官方链接:www.incsgo.gg注册登录自动免费获得$1.00美金取回状态:直接取回**优惠码:**csgogo(充值使用csgogo可增加5%充值金额)skinsdog狗网CSGO饰品皮肤开箱网站可直接取回官方链接:skinsdog.cc.

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号