`
isiqi
  • 浏览: 16551742 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

如何用Lucene为目录创建索引

阅读更多
现在网上很多例子都是基于老版本的Lucene做得例子,我给改了一下,这个例子是基于lucene 2.4的,希望能有所帮助
  1. packageutils;
  2. importjava.io.File;
  3. importjava.io.FileReader;
  4. importjava.io.IOException;
  5. importjava.io.Reader;
  6. importorg.apache.lucene.analysis.standard.StandardAnalyzer;
  7. importorg.apache.lucene.document.Document;
  8. importorg.apache.lucene.document.Field;
  9. importorg.apache.lucene.index.IndexWriter;
  10. publicclassIndexer{
  11. publicintindex(StringindexDir,StringdataDir)throwsIOException
  12. {
  13. FileindexDirFile=newFile(indexDir);
  14. FiledataDirFile=newFile(dataDir);
  15. intnumIndexed=index(indexDirFile,dataDirFile);
  16. return0;
  17. }
  18. privateintindex(FileindexDirFile,FiledataDirFile)throwsIOException{
  19. if(!dataDirFile.exists()||!dataDirFile.isDirectory())
  20. {
  21. thrownewIOException(dataDirFile+"doesnotexistorisnotadirectory");
  22. }
  23. IndexWriterwriter=newIndexWriter(indexDirFile,newStandardAnalyzer(),true);
  24. writer.setUseCompoundFile(false);
  25. indexDirectory(writer,dataDirFile);
  26. intnumIndexed=writer.docCount();
  27. writer.optimize();
  28. writer.close();
  29. returnnumIndexed;
  30. }
  31. privatevoidindexDirectory(IndexWriterwriter,FiledataDirFile)throwsIOException{
  32. File[]files=dataDirFile.listFiles();
  33. for(inti=0;i<files.length;i++)
  34. {
  35. Filef=files[i];
  36. if(f.isDirectory())
  37. {
  38. indexDirectory(writer,f);
  39. }elseif(f.getName().endsWith(".java") || f.getName().endsWith(".txt"))//需要索引的文件类型
  40. {
  41. indexFile(writer,f);
  42. }
  43. }
  44. }
  45. privatevoidindexFile(IndexWriterwriter,Filef)throwsIOException{
  46. if(f.isHidden()||!f.exists()||!f.canRead())
  47. {
  48. return;
  49. }
  50. System.out.println("Indexing"+f.getCanonicalPath());
  51. Documentdoc=newDocument();
  52. ReadertxtReader=newFileReader(f);
  53. doc.add(newField("path",f.getCanonicalPath(),Field.Store.YES,Field.Index.UN_TOKENIZED));
  54. doc.add(newField("contents",txtReader));
  55. doc.add(newField("name",f.getName(),Field.Store.YES,Field.Index.UN_TOKENIZED));
  56. writer.addDocument(doc);
  57. }
  58. }
调用的代码如下:
  1. StringfilesRepoDir="C:/workspace-2.0";//需要被索引的目录
  2. StringindexDir="C:/apache-tomcat-6.0.18/webapps/index";//存放索引的目录
  3. Indexerindexer=newIndexer();
  4. indexer.index(indexDir,filesRepoDir);


分享到:
评论

相关推荐

    Lucene3.0创建索引

    本篇文章将详细介绍如何使用Lucene3.0来创建索引,并通过一个具体的例子来演示整个过程。 #### 一、Lucene3.0简介 Lucene是一款高性能、全功能的全文搜索引擎库。它为开发者提供了构建搜索应用所需的所有基本工具...

    lucene 对 xml建立索引

    - 使用Lucene提供的API来创建索引。 - 需要创建一个`IndexWriter`对象,指定索引存储的位置及索引的配置选项。 - 对于每个XML文档中的元素,可以创建一个`Document`对象,并将其添加到`IndexWriter`中。 3. **...

    lucene索引优化多线程多目录创建索引

    本教程主要探讨的是如何利用Lucene进行索引优化,特别是通过多线程和处理多个目录来提高索引创建效率。 首先,我们需要理解Lucene的索引原理。Lucene将文档分解为词项(tokens),并对每个词项创建倒排索引。倒排...

    Lucene5学习之创建索引入门示例

    以上就是使用Lucene5创建索引的基本步骤。在实际应用中,我们可能还需要实现更复杂的功能,如多字段搜索、评分机制、高亮显示等。同时,Lucene还提供了工具类,如IndexReader和IndexSearcher,用于读取和搜索已建立...

    Lucene.net高速创建索引

    描述中提到的“对SQL Server数据库表,用多线程,高速创建索引”,是指在构建Lucene.NET索引时,采用了多线程技术来提升性能。这种做法可以充分利用多核处理器的计算能力,将数据处理任务分散到多个线程中,从而加快...

    Lucene对本地文件多目录创建索引

    标题中的“Lucene对本地文件多目录创建索引”指的是使用Apache Lucene库来构建一个搜索引擎,该搜索引擎能够索引本地计算机上的多个文件目录。Lucene是一个强大的全文搜索库,它允许开发者在Java应用程序中实现高级...

    Lucene创建索引步骤

    Lucene创建索引步骤: 1、创建Directory(索引位置) 2、创建IndexWrite(写入索引) 3、创建Document对象 4、为Document添加Field(相当于添加属性:类似于表与字段的关系) 5、通过IndexWriter添加文档到索引中

    Lucene 索引的简单使用

    创建索引 创建Lucene索引的步骤包括: 1. **初始化Directory**:选择存储索引的目录,如FSDirectory(文件系统)、RAMDirectory(内存)等。 2. **创建IndexWriter**:配置IndexWriter实例,指定Directory、...

    基于lucene技术的增量索引

    - **首次创建索引**:首先,我们需要遍历整个数据源,创建每个文档的实例,然后将这些文档添加到Lucene的索引writer中。完成这一步后,就会生成一个完整的初始索引。 - **监控数据变更**:为了实现增量索引,我们...

    修改wcp开源代码,Lucene为附件创建索引

    "修改wcp开源代码,Lucene为附件创建索引"这个项目就是针对这个问题进行的一个优化实践。WCP(Web Content Platform)可能是一个用于管理和检索网络内容的开源平台,而Lucene是一个强大的全文搜索引擎库,广泛应用于...

    lucene 4.7.2 Demo

    首先,让我们了解如何利用Lucene 4.7.2创建索引。创建索引是全文检索的基础,它涉及将文本数据结构化为Lucene可以理解和查询的形式。开发者可以通过Analyzer类来处理输入的文本,进行分词、去除停用词等预处理步骤。...

    luceneDemo(创建索引+关键字查询)

    创建索引 一、创建词法分析器 二、创建索引存储目录 三、创建索引写入器 四、将内容存储到索引 关键字查询 一、创建索引存储目录读取器 二、创建索引搜索器 三、解析查询 四、获取结果

    Lucene索引创建

    java创建Lucene索引

    Lucene结合Sql建立索引Demo源码.rar

    Lucene的使用者不需要深入了解有关全文检索的知识,仅仅学会使用库中的一个类,你就为你的应用实现全文检索的功能. 不过千万别以为Lucene是一个象google那样的搜索引擎,Lucene甚至不是一个应用程序,它仅仅是一个工具,...

    Lucene建索引及查询关键字

    在Eclipse环境中运用java,Lucene建索引及查询关键字

    Lucene创建与搜索索引

    本文将重点介绍如何使用Lucene创建索引以及如何基于这些索引进行高效的搜索。 #### 二、创建索引 ##### 2.1 准备工作 在开始之前,我们需要做一些准备工作: - **安装Java环境**:Lucene基于Java开发,因此首先...

    Lucene索引器实例

    // 创建索引器 IndexWriter indexWriter = new IndexWriter(directory, config); // 创建文档 Document doc = new Document(); doc.add(new Field("title", "Lucene索引器实例", Field.Store.YES, Field....

    lucene并行索引

    假设有一家互联网公司正在开发一个新的搜索引擎产品,他们选择使用Lucene作为核心的索引构建技术。为了应对每天新增的大量网页数据,该公司决定采用基于Lucene的分布式并行索引技术。具体步骤如下: 1. **需求分析*...

    lucene全文检索简单索引和搜索实例

    2. 创建索引目录:索引数据会存储在一个Directory对象中,可以是文件系统、内存或数据库。通常我们选择FSDirectory,将索引存储在本地文件系统。 3. 创建文档对象:为每份要索引的数据创建一个Document对象,添加...

    Lucene5写的全文搜索的demo,包括创建索引和搜索

    在本示例中,我们将探讨 Lucene5 创建索引和执行搜索的基本流程。 1. **安装与设置** - `.classpath` 和 `.project` 文件是 Eclipse IDE 的配置文件,它们包含了项目的类路径和工程设置。为了运行 Lucene 示例,...

Global site tag (gtag.js) - Google Analytics