- 浏览: 1251211 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (399)
- 心情故事 (12)
- java (115)
- linux (55)
- 关系型数据库 (35)
- struts,jsf,spring (11)
- jdbc,hibernate,ibatis (11)
- jsp,jstl,c:tag,标签库 (2)
- ejb,webservice (1)
- tomcat,jboss,jetty,weblogic,websphere (15)
- java网络编程 (6)
- java线程 (0)
- js,jquery,json,xml,dom,html.regex (25)
- 设计模式 (6)
- BUG记录 (2)
- ant (2)
- jsp,servlet (4)
- swing (6)
- lucene+nutch (6)
- log4j (2)
- windows doc (2)
- ruby (1)
- ruby on rails (3)
- 操作系统网络 (18)
- apache 错误 (1)
- tomcat (10)
- jboss (9)
- jetty (9)
- weblogic (9)
- websphere (10)
- apache (2)
- AIX的iostat命令查看系统磁盘的使用情况 (1)
- oracle 统计一个表格有多少列 (1)
- Exception in thread "main" java.security.KeyStoreException: Windows-MY not found (1)
- jsp (1)
- jstl (1)
- c:tag (1)
- 标签库 (1)
- struts (1)
- jsf (1)
- spring (2)
- oracle,sqlplus (2)
- sqlplus (2)
- show errors (1)
- proc (1)
- function (1)
- ORA-06544: PL/SQL: internal error (1)
- arguments: [55916] (1)
- [] (7)
- 终端身份实施文档 (1)
- 重装系统之后飞鸽传书只能看到自己 (1)
- vsftp "上传 553 Could not create file" (1)
- startWebLogic.sh启动失败,提示Error initializing Embedded LDAP Server (1)
- java agent 注册为 windows 服务 (1)
- centos (1)
- svn (1)
- apr (1)
- apr-util (1)
- activemq (2)
- oracle (5)
- mysql (3)
- nosql (3)
- NSIS (1)
- windows wmic (1)
- c 指针 (1)
- c c++ (0)
- jmeter (0)
- 性能测试 (0)
- linux,备份 (2)
- C++ ,Virtual (1)
- windows dos (1)
- android (2)
- 大数据,云计算 (1)
- JVM垃圾收集 (1)
- jdbc (2)
- invoke (1)
- hibernate (1)
- ibatis (1)
- 个人开源项目源码收藏 (1)
- 批处理 (1)
- Mongodb mapreduce (8)
- kettle (1)
- Mongodb capped (1)
- mongodb gridfs (1)
- Mongodb 入门基础知识 (1)
- mongodb (8)
- hadoop2.5.1 (1)
- hadoop (4)
- eclipse (1)
- hdfs fs (1)
- elipse hadoop plugin (1)
- PHP相关知识 (1)
- js (1)
- jquery (1)
- json (1)
- xml (1)
- dom (1)
- html.regex (1)
- 网络知识 (1)
- nginx (1)
- docker (1)
- 测试 (1)
- nodejs (1)
- iptables (1)
- linux gitlab (1)
最新评论
-
July01:
最近了解到一款StratoIO打印控件,功能如下:1、Html ...
web页面调用window.print()函数实现打印的功能 -
hxdtech:
非常感谢!
我在学习ibatis时的培训ppt -
zmwxiaoming:
what 能连数据库不错
SOLR的学习整理 -
springdata_springmvc:
java程序语言学习教程 地址http://www.zuida ...
java获取当前操作系统的信息 -
huanzei:
整理的不错,
oracle lpad函数
package chapter5; import java.io.IOException; import java.util.Date; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.SimpleAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.CorruptIndexException; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.IndexCommitPoint; import org.apache.lucene.store.LockObtainFailedException; public class LuceneIndexTest { /** * @param args */ private static String dest_Index_Path = "D:\\workshop\\TextIndex"; static protected String[] keywords = { "001", "002", "003" }; static protected String[] textdetail = { "记录一", "记录二", "记录三" }; public static void main(String[] args) { Date start = new Date(); Analyzer textAnalyzer = new SimpleAnalyzer(); try { IndexWriter textIndex = new IndexWriter(dest_Index_Path, textAnalyzer, true);//true or false menus create or update for (int i = 0; i < 3; i++) { Document document = new Document(); Field field_id = new Field("id", keywords[i], Field.Store.YES, Field.Index.UN_TOKENIZED ); document.add(field_id); Field field_content = new Field("content", textdetail[i], Field.Store.YES, Field.Index.TOKENIZED ); document.add(field_content); } textIndex.optimize();// 不关闭索引只保存在内存里面。 textIndex.close(); Date end = new Date(); long index_tm = end.getTime() - start.getTime(); System.out.println("Total Time :(ms)"); System.out.println(index_tm); } catch (CorruptIndexException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (LockObtainFailedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("Index Success!"); } }
注意,测试代码的版本是lucene2.3.jar
A
IndexWriter textIndex = new IndexWriter(dest_Index_Path, textAnalyzer, true);//true or false menus create or update
表示的是索引创建器,3个参数是,路径,分析器,是否重建。第3个参数为true,表示重新建立索引(假若存在则删除原文件),假若为false,那么在原来的基础上更改,这就是创建增量索引。
还有一个构造函数参数是一个目录,可以用以下方法取得。
Directory dir=FSDirectory.getDirectory(dir_name);
Analyzer textAnalyzer=new StandardAnalyzer();
IndexWriter indexWriter=new IndexWriter(dir,textAnalyzer,false);
B Analyzer textAnalyzer = new SimpleAnalyzer();
Analyzer是索引分析器,每个域的数据在添加时都会使用它来进行分析。
C
Document document = new Document(); Field field_id = new Field("id", keywords[i], Field.Store.YES, Field.Index.UN_TOKENIZED );
这里的Document并不是真正意识的文档,而是一个抽象的概念,可以理解为一个要被索引的内容的一个容器,有不同的Field组成的Document .
D 另外就是索引管理器IndexReader ,用来管理索引的强大工具。可以用它来删除索引
File indexDir=new File("D:\\workshop\\TextIndex"); try { IndexReader indexReader=IndexReader.open(indexDir); //准备索引文件的目录,生成对象读取索引内容 Term term=new Term("name","xx.txt");//创建要删除的对象的索引项的表示(Term) indexReader.deleteDocuments (term);//删除符合索引项的文档 indexReader.close ();//关闭,实现物力删除 } catch (CorruptIndexException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
下面贴一个给文本文件建立索引的代码,一共参考:
package chapter5; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; 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; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; public class LunceneIndexManager { /** * @param args */ private static String dest_Index_Path = "D:\\workshop\\TextIndex"; private static String text_File_Path = "D:\\largeData\\xx.txt"; public static void main(String[] args) throws IOException { Date start=new Date(); File file=new File(text_File_Path); try { FileReader fileReader=new FileReader(file); String dir_name=dest_Index_Path; Directory dir=FSDirectory.getDirectory(dir_name); Analyzer textAnalyzer=new StandardAnalyzer(); IndexWriter indexWriter=new IndexWriter(dir,textAnalyzer,false); Document document=new Document(); Field field_name=new Field("name",file.getName(),Field.Store.YES,Field.Index.UN_TOKENIZED); document.add(field_name); InputStream inputStream=new FileInputStream(file); int leng=inputStream.available(); byte[] by=new byte[leng]; inputStream.read(by); inputStream.close(); String content=new String(by); Field field_content=new Field("content",content,Field.Store.YES,Field.Index.TOKENIZED); document.add(field_content); indexWriter.addDocument(document); indexWriter.optimize(); indexWriter.close(); Date end=new Date(); long ss=end.getTime()-start.getTime(); System.out.println("Total Time:(ms)"); System.out.println(ss); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("Index Sucess!"); } }
发表评论
-
lucene+nutch学习笔记六:lucene使用需要注意的地方
2009-06-02 15:58 14371尽量减少不必要的存储。 基本的办法是在添加特定的 ... -
lucene+nutch学习笔记四:搜索引擎信息索引
2009-06-01 13:55 1849在实际的生活中,Nutch只能从网络上收集网页 , ... -
lucene+nutch学习笔记之二:搜索引擎原理
2009-05-26 13:55 2013整个互联网可以看成是一个蜘蛛网,相互关联,可以感 ... -
lucene+nutch学习笔记一:搜索引擎的一些常识
2009-05-21 10:00 15531常用搜索引擎 搜索引擎是我们现在网 ... -
lucene2.4+nutch学习笔记三:lucene 在多个文本文档里找出包含一些关键字的文档
2009-05-07 13:52 48061运行环境lucene2.4 ...
相关推荐
《Lucene 2.4与Nutch学习笔记:在多文档中搜索关键词》 Lucene是一个高性能、全文检索库,而Nutch则是一个开源的网络爬虫项目,两者结合使用,能够实现对大量文本文档的高效搜索和索引。这篇学习笔记主要探讨如何...
一个例子学懂搜索引擎(lucene).doc 中文搜索引擎技术揭密.doc 九大开源搜索引擎介绍.txt 基于Nutch的搜索引擎技术.pdf 基于开源工具搭建小型搜索引擎.pdf 整合开源工具的小型搜索引擎构建.pdf 用_Hadoop_进行分布式...
### Nutch全文搜索学习笔记 #### 一、Nutch安装与配置 **1. Linux环境下的JDK安装** 为了能够顺利地安装并运行Nutch,首先确保系统中已安装Java Development Kit (JDK) 并且正确配置了`JAVA_HOME`环境变量。如果...
Nutch 是一个开源的、基于 Lucene 的网络搜索引擎项目,它提供了一套完整的搜索引擎解决方案,包括网页抓取、索引和搜索功能。Nutch 0.8 版本尤其值得关注,因为它完全使用 Hadoop 进行了重写,从而充分利用了 ...
这个学习笔记主要涵盖了Lucene的基本概念,包括索引、文档、域和项,以及安装配置和索引的基本过程。 1. **基本概念** - **索引(Index)**:索引是Lucene的核心,它是由一系列文档组成的。每个索引包含了对文档...
- **Nutch**: 是一个开源网络爬虫,结合了Lucene用于网页抓取和索引。 ### 5. 学习资源 - 官方文档: Apache Lucene的官方文档是学习Lucene的好起点。 - "Lucene in Action"书籍: 一本深入介绍Lucene的书籍,适合...
### Hadoop数据分析平台学习笔记 #### 一、Hadoop概述 **Hadoop**是一个开源软件框架,用于分布式存储和处理大型数据集。它的设计灵感来源于Google的论文,其中包括Google文件系统(GFS)和MapReduce计算模型。...
- **2006年**:在Google发布的关于GFS和MapReduce的研究报告启发下,他们开始着手创建Hadoop项目,目的是为了提供一个低成本的解决方案来构建大规模的数据处理算法。 #### 四、Hadoop的技术架构 1. **HDFS...
【Hadoop学习笔记】 Hadoop 是一个开源框架,主要用于处理和存储大数据。它源自于解决互联网公司面临的海量数据处理问题,特别是Google发布的三篇技术论文,即GFS(Google File System)、MapReduce以及BigTable。...
Elasticsearch的诞生可以追溯到Doug Cutting的工作,他最初创建了Lucene,一个用于文本搜索的Java函数库。随着需求的增长,Cutting与Mike Cafarella合作,开发了Nutch,一个基于Lucene的开源搜索引擎项目,旨在提供...
Hadoop的发展与Lucene框架有着密切的联系,后者由Doug Cutting创建,最初是Apache基金会的一个子项目。在2003至2004年间,Google公开了GFS(Google File System)和MapReduce的细节,启发了Doug Cutting等人开发了...