`
exceljava
  • 浏览: 159138 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

lucene入门demo学习

阅读更多

           lucene自带的demo需要在命令行下运行,对于初次学习的人来说极为不变。对其demo进行了修改并附加中文注释,希望对喜爱lucene的人有所帮助,lucene的版本是最新的2.4.

           下面是修改后的IndexFiles,可以直接在IDE总运行。代码如下所示:

      

package com.exceljava.lucene;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.demo.FileDocument;
import org.apache.lucene.index.IndexWriter;
/**
* @author xjj email: exceljava@163.com description:建立索引
* @date Jan 5, 2009
*/
public class IndexFiles {
private IndexFiles() {
}
static final File INDEX_DIR = new File("exceljava");
// 指定要索引的目录
static final String DIR_PATH = "d:\\days";
public static void main(String[] args) {
indexWriter(INDEX_DIR,DIR_PATH);
}
/**
* function:索引创建
* @param file
* @param dirPath
* @date Jan 5, 2009
* @time 5:06:17 PM
*/
public static void indexWriter(File file,String dirPath){
// if (INDEX_DIR.exists()) {
// System.out.println(”索引目录’” + INDEX_DIR + “‘已经存在,请先删除该索引”);
// System.exit(1);
// }
final File docDir = new File(dirPath);
if (!docDir.exists() || !docDir.canRead()) {
System.out.println(”文档目录 ‘” + docDir.getAbsolutePath()
+ “‘不存在或不能读写”);
System.exit(1);
}
long start =System.currentTimeMillis();
try {
IndexWriter writer = new IndexWriter(file,
new StandardAnalyzer(), //
true,//这里的true表示重新建立索引,如果存在也将覆盖。false则表示如果存在索引则在现有基础上进行拓展
IndexWriter.MaxFieldLength.LIMITED);
System.out.println(”索引’” + INDEX_DIR + “‘…”);
indexDocs(writer, docDir);
//合并小索引文件并进行优化
writer.optimize();
writer.close();
long end =System.currentTimeMillis();
System.out.println(”共耗时:” + (end - start)+ “毫秒”);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* function:检索目录,并调用创建索引函数进行索引创建,支持对目录内嵌目录进行检索
* @param writer
* @param file
* @throws IOException
* @date Jan 5, 2009
* @time 4:49:45 PM
*/
static void indexDocs(IndexWriter writer, File file) throws IOException {
if (file.canRead()) {
if (file.isDirectory()) {
String[] files = file.list();
if (files != null) {
//检索内嵌目录
for (int i = 0; i < files.length; i++) {
indexDocs(writer, new File(file, files[i]));
//new File(file, files[i])通过父路径file和子路径files[i]创建文件
}
}
} else {
System.out.println(”添加索引文件: ” + file);
try {
//向索引中添加构造好的文档
writer.addDocument(FileDocument.Document(file));
} catch (FileNotFoundException fe) {
fe.printStackTrace();
}
}
}
}

}

 

分享到:
评论

相关推荐

    Lucene入门demo

    Lucene入门demo,lucene简单的应用

    lucene_demo例子

    可用lucene demo 已经有入门级pdf学习

    lucene3.0.0 入门DEMO

    lucene3.0.0 入门DEMO 适合新手使用 先要新建号相关的目录

    lucene入门demo

    里面编写了法创建,搜索的基本方法 LuceneDemo 单个文件索引,创建查找 CopyFile 为多文件复制多些文件做准备 CreateIndexe 多文件创建索引;Searcher多文件搜索对应CreateIndexe

    luceneDemo(完整代码)

    luceneDemo(完整代码) lucene入门 基础类的运用、高亮器的实现、相关度排序

    apache lucene 4.10.0入门单元测试代码demo

    总结了一些实用的demo 包括: 1.建立索引 2.通过IKAnalyzer搜索中文关键词 3.复杂的多字段搜索 4.多线程并发搜索,通过contiperf测试,详见:contiperf_百度百科 5.分页搜索 注意:lucene4.10.0需要jdk1.7以上...

    Lucenedemo

    lucene入门demo 实现基本的检索 可以进行改进

    lucene入门实例

    根据lucene demo 写的一个入门小例子,很小,希望对你有所帮助,不好别骂!

    Lucene Demo

    Lucene使用的一个小Demo,有兴趣的可以下来看看,入门级

    Lucene3教程

    Lucene入门文档,包含索引的创建、查询、更新以及删除demo,各个常用类的详解

    Lucene快速入门

    Lucene是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。Lucene以其方便使用、快速实施以及灵活性受到广泛的关注。它可以方便地嵌入到各种应用中实现针对应用的全文索引、检索功能,本总结使用lucene--...

    AppProjects:存放一些Java,JavaEE,Android和iOS的二进制文件;里面同时有zip压缩文件,可以直接下载,不需要克隆整个仓库!!!都是一些小演示,注释详细一点,就不写教程文档了

    Android新控件ViewPager2入门示例 Android仿闲鱼底部导航栏 安卓阿里开源ARouterDemo Android使用RecyclerView播放视频列表 Android桌面图标和App名字 Android解决滑动冲突JavaEE JavaEE中Lucene入门程序 Struts2

    lucenc 工程实例

    初学lucene的同学可以参照一下,代码中整理了一些说明,可以很快入门lucene,希望对大家有用!

    harmonyos2-grails-hibernate-search-plugin:将HibernateSearch功能集成到Grails

    和声2 Grails Hibernate 搜索插件 这个插件旨在通过几个步骤将 ...~/.grails/${grailsVersion}/projects/${yourProjectName}/lucene-index/development/ 您可以在 application.yml 中覆盖此配置 hibern

    淘特站内搜索引擎(C#版)

    为了方便开发者快速入门索引接口的使用,我们制作了不同WEB开发语言(asp,jsp,php,.net)的索引接口开发事例,请参考demo目录中的相关文件。 索引接口开发完毕后,通过修改您原来的数据添加程序,在添加数据库后,...

    单点登录源码

    Solr & Elasticsearch | 分布式全文搜索引擎 | [http://lucene.apache.org/solr/](http://lucene.apache.org/solr/) [https://www.elastic.co/](https://www.elastic.co/) Quartz | 作业调度框架 | ...

    ZendFramework中文文档

    7.1. Zend_Controller 快速入门 7.1.1. 简介 7.1.2. 入门 7.1.2.1. 文件系统的组织结构 7.1.2.2. 设置文件根目录 7.1.2.3. 创建URL重写规则 7.1.2.4. 创建你的bootstrap文件 7.1.2.5. 创建默认的控制器...

Global site tag (gtag.js) - Google Analytics