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)

 

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java心得体会_初学java之心得体会

    java心得体会_初学java之心得体会0.前言从学习java以来,已经进行过三次pta作业的训练。虽然每次作业的完成都遇到了些许困难和障碍,不是一帆风顺的,但通过自己的摸索,实践,总能完成作业要求,每次作业之后都有不同的收获。这些新的收获告诉我,实践出真知,动手会学习到更多东西。总结前面的三次作业,我发现面向对象程序设计这种语言不再那么神秘,我相信马上就能看到揭开神秘面纱后的的它。1.作业过程总结(1).总结三次作业的知识迭代关系第一…

    2022年7月9日
    22
  • 局域网和广域网_简单的局域网怎么搭建

    局域网和广域网_简单的局域网怎么搭建局域网1、什么是局域网:局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。也称为内网。2、局域网怎么实现:以太网是全球使用最广泛的局域网技术,有线局域网通常通过双绞线(一般直接说网线)连接;无线局域网现在一般通过交换机、路由器实现。3、局域网可以干什么:局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。广域网1、什么是广域网:将各局域网或城域网连接起来便是广域网,也称为外网或公网。2、广域网怎么实现:现在的传

    2022年10月19日
    3
  • ODS设计_ods dw

    ODS设计_ods dw1.数据调研2.确定数据范围需要把上端应用需求与ODS数据范围进行验证,以确保应用所需的数据都已经从业务系统中抽取出来,并且得到了很好的组织,以ER模型表示数据主题关系3.根据数据范围进行进一步的数据分析和主题定义把第一步生成的每个ER图中的实体进行分解,分解的结果仍以ER表示为佳4.定义主题元素定义主题、粒度、维、度量、存储期限a.定义维的概念特性:维…

    2022年9月26日
    3
  • 断点续传过程中重复上传数据「建议收藏」

    断点续传过程中重复上传数据「建议收藏」断点续传过程中重复上传数据

    2022年4月25日
    54
  • WebSocket 详解教程

    WebSocket 详解教程概述WebSocket是什么?WebSocket是一种网络通信协议。RFC6455定义了它的通信标准。WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯

    2022年7月4日
    23
  • 解释器模式-破解算术验证码

    解释器模式-破解算术验证码给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。

    2022年6月1日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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