首先需要导入:lucene-analyzers.jar
下面代码分词的详解:
import java.io.Reader; import java.io.StringReader; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.StopFilter; import org.apache.lucene.analysis.Token; import org.apache.lucene.analysis.TokenFilter; import org.apache.lucene.analysis.cjk.CJKAnalyzer; import org.apache.lucene.analysis.cn.ChineseAnalyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; /** * 一元分词和二元拆词 * @author zhouguohui */ public class AnalyzerTest { public static void main(String[] args) throws Exception{ String str = "测试一元分词和二元拆词拆分汉子,字母,数字等"; Standard_Analyzer(str); Chiniese_Analyzer(str); CJK_Analyzer(str); } public static void Standard_Analyzer(String str) throws Exception{ Analyzer analyzer = new StandardAnalyzer(); Reader r = new StringReader(str); StopFilter sf = (StopFilter) analyzer.tokenStream("", r); System.out.println("=====StandardAnalyzer 默认没有词只有字(一元分词)===="); Token t; while ((t = sf.next()) != null) { System.out.println(t.termText()); } } public static void Chiniese_Analyzer(String str) throws Exception{ Analyzer analyzer = new ChineseAnalyzer(); Reader r = new StringReader(str); TokenFilter tf = (TokenFilter) analyzer.tokenStream("", r); System.out.println("=====chinese analyzer 基本等同StandardAnalyzer(一元分词)===="); Token t; while ((t = tf.next()) != null) { System.out.println(t.termText()); } } public static void CJK_Analyzer(String str) throws Exception{ Analyzer analyzer = new CJKAnalyzer(); Reader r = new StringReader(str); StopFilter sf = (StopFilter) analyzer.tokenStream("", r); System.out.println("=====CJKAnalyzer 交叉双字分割(二元分词)===="); Token t; while ((t = sf.next()) != null) { System.out.println(t.termText()); } } }
运行结果为:
=====StandardAnalyzer 默认没有词只有字(一元分词)==== 测 试 一 元 分 词 和 二 元 拆 词 拆 分 汉 子 字 母 数 字 等 =====chinese analyzer 基本等同StandardAnalyzer(一元分词)==== 测 试 一 元 分 词 和 二 元 拆 词 拆 分 汉 子 字 母 数 字 等 =====CJKAnalyzer 交叉双字分割(二元分词)==== 测试 试一 一元 元分 分词 词和 和二 二元 元拆 拆词 词拆 拆分 分汉 汉子 字母 数字 字等
这两者没有什么太大的区别,第二种对中文分词支持的效果更好一些
相关推荐
### Lucene与Solr的使用详解 #### 一、Lucene概述 Lucene是一款高性能、全功能的文本搜索引擎库,由Java语言编写而成。它能够为应用系统提供强大的全文检索能力,是当前最为流行的开源搜索库之一。由于其高度可...
Apache Solr 和 Lucene 是两个在全文搜索领域广泛使用的开源框架。它们的组合为构建高效、可扩展的搜索引擎提供了强大的工具。以下是对这两个组件及其在搜索模块设计实现中的关键知识点的详细说明: 1. **Apache ...
Solr、Elasticsearch和Lucene是三个在搜索引擎领域中至关重要的技术,它们共同构建了现代数据检索的基础架构。下面将分别对这三个组件进行详细解释,并探讨它们之间的关系。 **Lucene** Lucene是一个高性能、全文本...
- **Solr和Lucene的本质区别**:虽然两者都基于Java开发且紧密相关,但Solr更侧重于提供一套完整的搜索解决方案,而Lucene则更偏向于提供核心的搜索技术框架。 - **Lucene**:是一个用于文本搜索和分析的开源Java库...
lucene&solr原理分析,lucene搜索引擎和solr搜索服务器原理分析。
《剖析paoding-webx3-solr-lucene:构建高效搜索引擎的深度探索》 在现代互联网应用中,数据量的增长速度惊人,如何高效地搜索和处理这些数据成为了开发者面临的重大挑战。"paoding-webx3-solr-lucene"是一个专注于...
标题中的"solr_lucene3.5_lukeall-3.5.0.jar.zip" 提供了关于这个压缩包的基本信息。它包含了Solr和Lucene的特定版本——3.5.0,以及一个名为"lukeall"的工具。"Luke"在Lucene和Solr的上下文中是一个非常有用的工具...
Solr 依存于Lucene,因为Solr底层的核心技术是使用Lucene 来实现的,Solr和Lucene的本质区别有以下三点:搜索服务器,企业级和管理。Lucene本质上是搜索库,不是独立的应用程序,而Solr是。Lucene专注于搜索底层的...
标题“lucene简单介绍及solr搭建使用”涉及了两个主要的开源搜索技术:Lucene和Solr。Lucene是Java开发的一个全文检索库,而Solr则是基于Lucene构建的企业级搜索平台,提供了更高级的功能和管理界面。 **Lucene简介...
Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一...
5. Solr是一个基于Lucene构建的企业级搜索服务器,它提供了搜索引擎的索引、搜索、排序等功能,并通过RESTful API与各种客户端进行交互。Solr在实现搜索引擎方面,不仅继承了Lucene的强大功能,还提供了分布式搜索、...
lucene solr 全文搜索框架,该教程有助于深入了解lucene solr的用法以及他么们之间的比较
本人用ant idea命令花了214分钟,35秒编译的lucene-solr源码,可以用idea打开,把项目放在D:\space\study\java\lucene-solr路径下,再用idea打开就行了
在搜索引擎技术中,停词(Stopword)是一个重要的概念,特别是在全文索引和搜索系统如Solr、Elasticsearch和Lucene中。停词是指那些在文本中非常常见,但在检索过程中通常不会对搜索结果产生实质性影响的词汇,例如...
《深入理解Lucene与Solr:Java搜索框架的实践指南》 在当今信息化时代,数据检索和搜索引擎成为了不可或缺的一部分。Java领域中,Lucene和Solr是两款强大的全文搜索引擎库,为开发者提供了高效的文本搜索解决方案。...
在这个"solr软件包扩展词典可停词配置学习和开发文档"中,我们将深入探讨Solr在Linux环境下的安装、扩展词典的使用以及停词配置的关键知识点。 **1. Solr的Linux环境安装** 在Linux环境下安装Solr,首先确保系统...
lucene-analyzers-common-4.3.0.jar需要的可以下载,搬运
solr lucene solr4.10.2 CHM 英文 API 如果打不开,右键解除锁定即可查阅
Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,...