- 浏览: 238386 次
- 性别:
- 来自: 北京
最新评论
-
Xgeeeeek:
讲的很细致,多谢~
JAVA RMI 实例 -
zontim:
...
JAVA RMI 实例 -
czl026:
简单明了,谢谢
[JMX一步步来] 1、JMX的Hello World -
manxisuo:
jtianguo 写道服务端和客户端在同一个包下,这句代码He ...
JAVA RMI 实例 -
manxisuo:
非常好,多谢!!
JAVA RMI 实例
建索引:
package com.pccw; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.Date; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; /** */ /** * author Shane in PCCW * */ public class TextFileIndexer { public static void main(String[] args) throws Exception { /**/ /* 指明要索引文件夹的位置,这里是C盘的S文件夹下 */ File fileDir = new File( "c:\\s" ); /**/ /* 这里放索引文件的位置 */ File indexDir = new File( "c:\\index" ); Analyzer luceneAnalyzer = new StandardAnalyzer(); IndexWriter indexWriter = new IndexWriter(indexDir, luceneAnalyzer, true ); indexWriter.setMaxFieldLength(99999999);//增加内存域长度限制(非常重要) File[] textFiles = fileDir.listFiles(); long startTime = new Date().getTime(); // 增加document到索引去 for ( int i = 0 ; i < textFiles.length; i ++ ) { if (textFiles[i].isFile() && textFiles[i].getName().endsWith( ".txt" )) { System.out.println( " File " + textFiles[i].getCanonicalPath() + " 正在被索引. " ); String temp = FileReaderAll(textFiles[i].getCanonicalPath(), " GBK " ); System.out.println(temp); Document document = new Document(); Field FieldPath = new Field( " path " , textFiles[i].getPath(), Field.Store.YES, Field.Index.NO); Field FieldBody = new Field( " body " , temp, Field.Store.YES, Field.Index.TOKENIZED, Field.TermVector.WITH_POSITIONS_OFFSETS); document.add(FieldPath); document.add(FieldBody); indexWriter.addDocument(document); } } // optimize()方法是对索引进行优化 indexWriter.optimize(); indexWriter.close(); // 测试一下索引的时间 long endTime = new Date().getTime(); System.out .println( " 这花费了 " + (endTime - startTime) + " 毫秒来把文档增加到索引里面去! " + fileDir.getPath()); } public static String FileReaderAll(String FileName, String charset) throws IOException { BufferedReader reader = new BufferedReader( new InputStreamReader( new FileInputStream(FileName), charset)); String line = new String(); String temp = new String(); while ((line = reader.readLine()) != null ) { temp += line + "\n"; } reader.close(); return temp; } }
查询:
package com.pccw; import java.io.IOException; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.queryParser.QueryParser; import org.apache.lucene.search.Hits; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; public class TestQuery { public static void main(String[] args) throws IOException, ParseException { Hits hits = null ; String queryString = "中华" ; Query query = null ; IndexSearcher searcher = new IndexSearcher( " c:\\index " ); Analyzer analyzer = new StandardAnalyzer(); try { QueryParser qp = new QueryParser( " body " , analyzer); query = qp.parse(queryString); } catch (ParseException e) { } if (searcher != null ) { hits = searcher.search(query); if (hits.length() > 0 ) { System.out.println( " 找到: " + hits.length() + " 个结果! " ); } } } }
评论
4 楼
sunzongbao2007
2011-03-04
1G的文件 必死无疑
3 楼
凤凰山
2009-04-19
非常感谢分享,呵呵
2 楼
eonn
2009-04-08
确实讲的不错,蛮详细的
1 楼
cjc19762338
2008-12-28
好。多谢共享~~
发表评论
-
txt读取字符串(为实习生作的例子)
2008-01-29 18:27 1981try { FileInputStream fi = n ... -
关于Lucene索引合并解决方法
2008-01-28 10:21 9335由于Clustor的问题造成无法对索引进行同步,脑子中马上浮现 ... -
Spring 2.0 AOP 与事务配置
2007-11-20 16:13 2814Spring 2.0 AOP 与事务配置 ********* ... -
关于Soeckt 流操作的数据转换工具方法
2007-11-02 10:50 2223java 代码 package com ... -
Java socket开发实例入门
2007-08-21 16:08 12230socket用中文意思就是我 ... -
不使用webwork标签直接用Jsp取得Action中的值
2007-05-22 14:23 3096今天突然一个同事问我webwork如果不用标签只用JSP ... -
23种模式趣味解释
2007-05-22 10:36 2031创建型模式 1、FACTORY ... -
关于领域逻辑的三个主要模式
2007-05-13 22:36 2732事务脚本 事务脚本比较好理解,简单来说,就是将大多是事务,以过 ... -
又谈领域模型
2007-04-29 09:58 2268昨天,突然和阿敏谈起领域模型,发现自己的理解还是 ... -
简单Socket编程,来理解Socket
2007-02-27 09:34 2259Server端: java 代码 p ... -
[JMX一步步来] 9、基于JBoss来写MBean
2007-02-02 13:31 13852前面都是用JDK自带的JMX ... -
[JMX一步步来] 8、编写程序来连接MBean
2007-02-02 13:18 5968前面用Html、jconsole等方法连接上了MBeanSer ... -
[JMX一步步来] 7、用JDK5.0的JConsole来连接MBean
2007-02-02 13:09 8670前面所有看效果都是通过Html网页来看的。JDK5.0自带了一 ... -
[JMX一步步来] 6、模型Bean:Model Bean
2007-02-02 13:06 5779在上一节是用apache的commons-modeler来开发 ... -
[JMX一步步来] 5、用Apache的commons-modeler来辅助开发JMX
2007-02-02 12:59 7005一、前言 每一个MBean都要有一个接口,比如前面的H ... -
[JMX一步步来] 4、动态MBean:DynamicMBean
2007-02-02 12:48 6563一、前言 动态MBean是在运行期才定义它的属性和方法 ... -
[JMX一步步来] 3、Notification的使用
2007-02-02 12:36 6235一、简介 Mbean之间的通信是必不可少的, ... -
[JMX一步步来] 2、JMX简介
2007-02-02 11:25 8810一、JMX简介 JMX是一 ... -
[JMX一步步来] 1、JMX的Hello World
2007-02-02 11:23 10216一、JMX简介 什么是JMX?在一篇网文中是这样说的: ... -
JAVA RMI 实例
2007-02-02 10:51 39373JAVA RMI 快速入门实例 本实例为参考多篇文章写就而成 ...
相关推荐
- **索引**:Lucene 的核心是创建索引,它将文本数据转换为可搜索的结构。索引过程包括分析、分词和倒排索引。 - **文档**:在 Lucene 中,每个要搜索的数据被视为一个文档,包含一个或多个字段,如标题、内容等。...
Lucene3包含了对文本的分词、标准化处理(如去除停用词、词干提取)以及建立倒排索引的能力,这些都是全文搜索的关键步骤。倒排索引允许快速定位包含特定关键词的文档,大大提高了搜索效率。 博文链接中提到的是一...
在Lucene的工作流程中,数据通常指的是文本文件、数据库记录或其他形式的信息,这些信息需要被索引以便快速检索。这些数据首先会被读取,然后经过预处理步骤,如分词、去除停用词和词干提取,以转化为适合Lucene内部...
Lucene是一个开源的全文检索库,它提供了一套完整的搜索解决方案,包括索引创建、文档存储、查询解析、搜索结果排名等。其核心在于将文本数据转换为倒排索引,以便快速定位到包含特定关键词的文档。在英文环境中,...
在信息技术领域,搜索引擎技术是不可或缺的一部分,Apache Lucene作为一款开源全文搜索引擎库,为开发者提供了强大的文本检索能力。本文将深入探讨一个名为“lucene_web”的项目,它是基于Lucene实现的一个Web应用...
总之,Lucene 4.0 提供了强大的文本索引和搜索功能,让开发者能够轻松地在应用程序中集成高级搜索功能。这个简单的示例是理解其工作原理和实践操作的一个良好起点。通过深入研究并结合自己的需求,开发者可以构建出...
Apache Lucene是一个开源全文检索库,由Java编写,为开发者提供了构建高效、可扩展的搜索功能所需的各种工具。这个"LuceneTest"可能是一个简单的应用,演示了如何利用Lucene进行索引创建、查询执行以及结果返回等...
Je-analysis,作为一款基于Java的开源全文检索框架Lucene的中文分词组件,为开发者提供了强大的文本处理能力。本文将详细探讨je-analysis-1.5.3版本,揭示其核心功能、工作原理以及实际应用中的价值。 首先,我们来...
LuceneNet 是 Apache Lucene 的 .NET 版本,它是一个高性能、全文本搜索库,适用于各种应用场景,包括网站搜索、文档检索、日志分析等。这个开发实用参考样例是针对 C# 开发者的,旨在帮助他们快速理解和应用 ...
Solr 提供了强大的全文检索、命中高亮、拼写检查、相关性排序等功能,广泛应用于网站、电子商务、企业内部文档搜索等多个场景。 "j-solr1.zip"这个压缩包文件,很可能是Solr的一个特定版本或者样例集合,用于帮助...
Lucene是Java开发的全文检索库,它提供了强大的文本分析、索引构建和查询执行功能。 2. **文件解析**:为了进行内容搜索,JDesktopSearch需要解析不同类型的文件,这可能涉及到读取PDF、Word文档、电子邮件等格式的...
Lucene可以索引文本数据,并快速执行查询,返回相关的文档。在Web应用中,Lucene通常用于搜索用户输入的关键字,提高用户体验。在本项目中,你将看到如何将Lucene集成到Struts2和Spring框架中,创建一个能够进行全文...
该分析器采用了歧义分析算法来优化查询关键词的搜索排列组合,显著提高了Lucene检索的准确性。 ##### 1.2 特性 - **高速处理能力**:如上所述,IKAnalyzer采用了独特的算法设计,使得其能够以非常高的速度处理大量...
Apache Lucene是一个高性能、全文检索库,广泛应用于搜索引擎和其他需要全文搜索功能的应用。这意味着这个示例项目可能涉及到使用Lucene进行信息检索或文本分析。 综合以上信息,这个压缩包可能包含一个使用Apache ...
分词器(Tokenizer)在Elasticsearch中的作用是将输入文本分割成独立的词语,这是全文检索的第一步。IK分词器(IK Analyzer)是一款针对中文的开源分词组件,特别适合处理中文文本。它支持多种分词模式,如精确模式...
Apache Solr是一款强大的开源企业级全文搜索引擎,它基于Java且构建于Apache Lucene之上。Solr提供了高效、可扩展的搜索和导航功能,广泛应用于各种规模的企业环境中,用于处理大量数据的快速检索。本文将深入探讨...
它基于Java,并且能够处理大量的文本和其他类型的数据,提供高效、可扩展的全文检索、数据分析和分布式搜索服务。Solr是Lucene库的一个高度封装和优化的搜索服务器,具备丰富的功能和强大的性能。 在标题中提到的...
1. **全文搜索**:Solr的核心功能是进行高效的全文检索。它支持多种类型的字段类型,包括文本、数字、日期等,能够对文档内容进行分析和索引,使用户能够快速查找相关信息。 2. **Lucene库**:Solr基于高性能的全文...
1. 全文检索:Solr支持对文本进行分词,并建立倒排索引,实现快速的全文搜索。 2. 多字段搜索:用户可以指定多个字段进行搜索,提高查询灵活性。 3. 复杂查询:Solr支持多种查询语法,包括布尔逻辑、短语匹配、...
这些特性使得Solr能够满足比价系统全文检索引擎的需求。 准备工作强调了如何设置和配置Solr,包括使用Solr提供的solr.war包作为样例,并采用Maven进行项目依赖管理。这样可以确保项目配置和依赖的准确性,同时便于...