- 浏览: 850215 次
文章分类
- 全部博客 (365)
- java (124)
- spring mvc (21)
- spring (22)
- struts2 (6)
- jquery (27)
- javascript (24)
- mybatis/ibatis (8)
- hibernate (7)
- compass (11)
- lucene (26)
- flex (0)
- actionscript (0)
- webservice (8)
- rabbitMQ/Socket (15)
- jsp/freemaker (5)
- 数据库 (27)
- 应用服务器 (21)
- Hadoop (1)
- PowerDesigner (3)
- EJB (0)
- JPA (0)
- PHP (2)
- C# (0)
- .NET (0)
- html (2)
- xml (5)
- android (7)
- flume (1)
- zookeeper (0)
- 证书加密 (2)
- maven (1)
- redis (2)
- cas (11)
最新评论
-
zuxianghuang:
通过pom上传报错 Artifact upload faile ...
nexus上传了jar包.通过maven引用当前jar,不能取得jar的依赖 -
流年末年:
百度网盘的挂了吧???
SSO单点登录系列3:cas-server端配置认证方式实践(数据源+自定义java类认证) -
953434367:
UfgovDBUtil 是什么类
Java发HTTP POST请求(内容为xml格式) -
smilease:
帮大忙了,非常感谢
freemaker自动生成源代码 -
syd505:
十分感谢作者无私的分享,仔细阅读后很多地方得以解惑。
Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
import java.io.IOException; import java.io.StringReader; import java.util.Iterator; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.search.TopDocs; import org.apache.lucene.store.Directory; import org.apache.lucene.store.RAMDirectory; import org.apache.lucene.util.AttributeImpl; import org.wltea.analyzer.lucene.IKAnalyzer; import org.wltea.analyzer.lucene.IKQueryParser; import org.wltea.analyzer.lucene.IKSimilarity; /** * 采用IKAanlyzer分词器查询 * @author admin * */ public class IKAnalyzerSearchWord { private static String fieldName = "text"; public static void searchWord(String field ,String keyword) { if(null!=field&&!"".equals(field)){ fieldName = field; } String text = "IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, " + "IKAnalyzer已经推出了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。" + "新版本的IK Analyzer 3.0则发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。 "; Analyzer analyzer = new IKAnalyzer(); StringReader reader = new StringReader(text); long startTime = System.currentTimeMillis(); //开始时间 TokenStream ts = analyzer.tokenStream("*", reader); Iterator<AttributeImpl> it = ts.getAttributeImplsIterator(); while(it.hasNext()){ System.out.println((AttributeImpl)it.next()); } System.out.println(""); long endTime = System.currentTimeMillis(); //结束时间 System.out.println("IK分词耗时" + new Float((endTime - startTime)) / 1000 + "秒!"); Directory dir = null; IndexWriter writer = null; IndexSearcher searcher = null; try { dir = new RAMDirectory(); writer = new IndexWriter(dir, analyzer, true, IndexWriter.MaxFieldLength.LIMITED); System.out.println(IndexWriter.MaxFieldLength.LIMITED); Document doc = new Document(); doc.add(new Field(fieldName, text, Field.Store.YES, Field.Index.ANALYZED)); writer.addDocument(doc); writer.close(); //在索引其中使用IKSimilarity相似评估度 searcher = new IndexSearcher(dir); searcher.setSimilarity(new IKSimilarity()); Query query = IKQueryParser.parse(fieldName, keyword); TopDocs topDocs = searcher.search(query, 5); System.out.println("命中:"+topDocs.totalHits); ScoreDoc[] scoreDocs = topDocs.scoreDocs; for (int i = 0; i < scoreDocs.length; i++) { Document targetDoc = searcher.doc(scoreDocs[i].doc); System.out.println("內容:"+targetDoc.toString()); } } catch (Exception e) { System.out.println(e); }finally{ try { searcher.close(); } catch (IOException e) { e.printStackTrace(); } try { dir.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { long a = System.currentTimeMillis(); IKAnalyzerSearchWord.searchWord("","中文分词工具包"); System.out.println(System.currentTimeMillis()-a); } }
import java.io.IOException; import java.io.StringReader; import java.util.Iterator; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.search.TopDocs; import org.apache.lucene.store.Directory; import org.apache.lucene.store.RAMDirectory; import org.apache.lucene.util.AttributeImpl; import org.wltea.analyzer.lucene.IKAnalyzer; import org.wltea.analyzer.lucene.IKQueryParser; import org.wltea.analyzer.lucene.IKSimilarity; /** * 采用IKAanlyzer分词器查询 * @author admin * */ public class IKAnalyzerSearchWord { private static String fieldName = "text"; public static void searchWord(String field ,String keyword) { if(null!=field&&!"".equals(field)){ fieldName = field; } String text = "IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, " + "IKAnalyzer已经推出了3个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。" + "新版本的IK Analyzer 3.0则发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。 "; Analyzer analyzer = new IKAnalyzer(); StringReader reader = new StringReader(text); long startTime = System.currentTimeMillis(); //开始时间 TokenStream ts = analyzer.tokenStream("*", reader); Iterator<AttributeImpl> it = ts.getAttributeImplsIterator(); while(it.hasNext()){ System.out.println((AttributeImpl)it.next()); } System.out.println(""); long endTime = System.currentTimeMillis(); //结束时间 System.out.println("IK分词耗时" + new Float((endTime - startTime)) / 1000 + "秒!"); Directory dir = null; IndexWriter writer = null; IndexSearcher searcher = null; try { dir = new RAMDirectory(); writer = new IndexWriter(dir, analyzer, true, IndexWriter.MaxFieldLength.LIMITED); System.out.println(IndexWriter.MaxFieldLength.LIMITED); Document doc = new Document(); doc.add(new Field(fieldName, text, Field.Store.YES, Field.Index.ANALYZED)); writer.addDocument(doc); writer.close(); //在索引其中使用IKSimilarity相似评估度 searcher = new IndexSearcher(dir); searcher.setSimilarity(new IKSimilarity()); Query query = IKQueryParser.parse(fieldName, keyword); TopDocs topDocs = searcher.search(query, 5); System.out.println("命中:"+topDocs.totalHits); ScoreDoc[] scoreDocs = topDocs.scoreDocs; for (int i = 0; i < scoreDocs.length; i++) { Document targetDoc = searcher.doc(scoreDocs[i].doc); System.out.println("內容:"+targetDoc.toString()); } } catch (Exception e) { System.out.println(e); }finally{ try { searcher.close(); } catch (IOException e) { e.printStackTrace(); } try { dir.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { long a = System.currentTimeMillis(); IKAnalyzerSearchWord.searchWord("","中文分词工具包"); System.out.println(System.currentTimeMillis()-a); } }
发表评论
-
Solr4.0+IKAnalyzer中文分词安装
2012-11-29 19:14 1581有近2年没接触Solr跟Lucene ... -
solr搜索打分规制排序
2012-09-26 21:58 2403solr使用了Lucene的内核,也继承了Luce ... -
solr DataimportHanler
2012-09-22 17:01 1239大多数的应用程序将数据存储在关系数据库、xml文件 ... -
solr第一弹 autocomplete(自动补全)
2012-09-22 16:38 1461百度和google中都有 ... -
全文搜索服务器solr之客户端 - solrj二次开发
2012-09-21 09:07 4859Solrj已经是很强大的solr客户端了。它本身就包装了h ... -
Solr Data Import 快速入门
2012-09-20 14:32 831原文出处:http://blog.chenl ... -
JAVA环境下利用solrj二次开发SOlR搜索的环境部署常见错误
2012-09-20 11:36 1789问题一:出现控制台坏的响应错误一Bad reque ... -
Solr学习总结
2012-09-20 10:06 6434一、 SOLR搭建企业搜索平台 运行环境: 运行容器:Tomc ... -
olr 的客户端调用solrj 建索引+分页查询
2012-09-20 08:54 1931在 solr 3.5 配置及应用(一) 讲过一了 sol ... -
Solr笔记
2012-09-19 23:07 1287... -
Apache Solr 初级教程(介绍、安装部署、Java接口、中文分词)
2012-09-19 22:56 1766Apache Solr 介绍 Solr 是 ... -
lucene3.0 分页显示与高亮显示(转)
2012-09-19 11:44 1722分页类 Java代码 pac ... -
Lucene3.0.1 学习笔记
2012-09-08 08:57 952不管怎么说,搜索都是非 ... -
Compass2.0.2自带例子解析
2012-09-05 08:47 1463Compass2.0.2自带例子解析: 下面的代码来自com ... -
compass站内搜索
2012-09-05 08:49 998compass站内搜索: 1.去官方网站下载compass的 ... -
Spring + Compass + paoding配置
2012-09-05 08:50 1053Spring + Compass + paoding配置: ... -
配置compass的索引位置为相对路径
2012-09-01 10:49 1366配置compass的索引位置为相对路径: Compass是对 ... -
lucene创建索引
2012-09-01 10:48 1090lucene创建索引: import java.io.Fi ... -
Lucene demo调试运行:
2012-09-01 10:47 2028Lucene demo调试运行: 运行环境: JDK ... -
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎
2012-09-01 10:43 3455前两天看到了一个中国新闻网,这个网站的搜索form的a ...
相关推荐
【Lucene4.7+IK Analyzer中文分词入门教程】 Lucene是一个开源的全文检索库,它提供了文本分析、索引和搜索的核心工具。在这个入门教程中,我们将使用Lucene 4.7版本,结合IK Analyzer,一个专门针对中文分词的开源...
**IKanalyzer分词器详解** IKAnalyzer是一款开源的、基于Java实现的中文分词工具,主要用于对中文文本进行分词处理。它以其高效、灵活的特性,在许多Java开发的搜索引擎和自然语言处理项目中得到广泛应用。这个"IK...
总结来说,"lucene3.5 + ik中文分词器例子"是一个展示如何使用Lucene进行中文全文检索的示例,它涵盖了从数据抓取、分词处理、索引建立到查询执行的全过程。通过这个实例,开发者可以更好地理解和掌握Lucene与IK分词...
IKAnalyzer是一款基于Java语言开发的中文分词工具包,它在Lucene的基础上进行了优化和扩展,特别适用于全文检索和自然语言处理任务。IKAnalyzer提供了强大的中文分词能力,能够有效地识别和处理中文词汇,提高了搜索...
解决lucene4.0与IKAnalyzer的冲突。解决Exception in thread "main" java.lang.VerifyError...原因IKAnalyzer中参考手册中的例子是使用的lucene3.4,与4.0已经是不兼容了。本资源包含了IKAnalyzer2012_FF_hf1.jar及源码
### IKAnalyzer中文分词器V3.1.1使用手册 #### 1. IKAnalyzer 3.1.1 介绍 IKAnalyzer是一个基于Java语言开发的开源轻量级...通过这个例子,开发者可以快速了解如何在实际应用中集成IKAnalyzer来进行中文分词处理。
### IKAnalyzer中文分词器V3.2.8使用手册 #### 1. IKAnalyzer3.X介绍 IKAnalyzer是一款开源的、基于Java语言开发的轻量级中文分词工具包。自2006年12月发布1.0版以来,已经经历了多个大版本的迭代,目前最新版本为...
文件说明:本zip包含IKAnalyzer的src及elasticsearch可运行插件plugins两部分。 使用说明:修改src源码后可通过IKAnalzyerDemo、LuceneIndexAndSearchDemo测试分词及检索。将编译后jar包替换plugins中相应jar包即可...
分词器的配置是灵活的,可以根据需求选择不同的分词策略,比如标准分词器(StandardAnalyzer)适用于大多数英文文本,而中文分词可能需要使用IKAnalyzer或SmartChineseAnalyzer等针对中文特性的分词器。 在运行这个...
在这个“Lucene全文检索的各种例子”中,我们将探讨如何使用不同的分词器,如ikAnalyzer和smartChineseAnalyzer,来实现中文文本的索引和搜索。 首先,让我们深入理解一下Lucene。Lucene的核心功能包括文档的索引和...
IK分词器(Intelligent Chinese Analyzer for Solr)是针对Java环境下Lucene/Solr的高效、灵活的中文分词组件,它的目标是为Java开发人员提供一个快速、稳定、扩展性好的中文分词工具。 在Solr5中,IK分词器已经是...
在本文中,我们将通过一个简单的例子来探讨如何使用Lucene和IKAnalyzer进行中文分词及建立索引。 首先,我们需要引入相关的库文件,包括Lucene的核心库和IKAnalyzer。在Java项目中,这通常通过Maven或Gradle的依赖...
在这个过程中,你会了解到如何创建Analyzer来处理中文分词,因为 Lucene 默认并不支持中文。例如,可以使用IK Analyzer、SmartCN Analyzer或jieba分词库来实现。此外,你还会学习到如何设计查询解析器,将用户的输入...
在这个例子中,"text_field"字段将使用"my_ikAnalyzer"进行分析,该分析器基于ik_max_word tokenizer,能尽可能多地切分出词汇,并应用了小写转换和ASCII折叠过滤器,确保搜索的兼容性。 总的来说,"elasticsearch-...
总结来说,"lucene.zip"包含了一个基于Lucene的简单搜索系统实例,利用了IK分词器对中文文本进行分词,构建了索引,并实现了搜索功能。这个例子对于理解和学习如何在实际项目中使用Lucene进行信息检索是非常有价值的...
在中文环境下,Lucene需要配合分词器,如IK Analyzer或HanLP,对中文文本进行分词处理。分词器会根据语法规则和词汇库将句子拆分成单个词语,以便于搜索。 ### 5. 在留言项目中的应用 在描述中提到的Leave_msg_...
默认的Analyzer如StandardAnalyzer处理英文文本,对于中文则可以使用SmartChineseAnalyzer或IKAnalyzer。 2. **Field定义**:每个文档由多个Field组成,每个Field都有自己的属性,如是否存储、是否可搜索、是否可...