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

lucene 建立索引与搜索所用到的相关类

阅读更多

      今天继续看《lucene in action》,将简单地做一下笔记。

  一、核心索引相关类

   1)IndexWriter

    职责:创建索引或添加lucene结构的记录(Document)到索引中——建立/修改索引而不允许读取索引。

 

   2)Directory

    职责:lucene所建立的索引位置。此类是个抽象类,其子类有两个FSDirectory和RAMDirectory,表明了lucene所建立的索引只有两个可能的位置:磁盘文件存储形式或内存存储形式。其两个子的继承关系下图(此图是对lucene 1.4.3源码进行逆向工程得到,截图去掉了FSDirectory类的两个关联关系,其它我没有检查其可靠性):

lucene Directory类关系图

 

        3)Analyzer

     职责:对被索引的文件进行分析(分词)便于建立精确的全文索引。这个类也是抽象类,其具体实现lucene接供文本分析器,具体如下图示:

Analyzerclass

   

     这些类具体作用有等进一步学习,重点是其扩展分词:Tokenizer类以适应新的字词,语义切分。

 

   4)Document

   职责:作为lucene的索引记录(类似于数据库的记录,记录由字段构成)。

   5)Field

   职责:作为lucene的Document的字段。其与Document类的关系图如下图示。

Documentclass

 

    数据库中表的字段有数据类型,lucene的字段也自己的数据类型,主要四种:Keyword,Unindexed,Unstored,Text其具体含义见 《luncene in Action》,但要注意在lucene 2.4.0中已引入几个新类,并且Field类的用法有些变化,在构造函数中指定字段类型,有了Termvertor类型。

 

    先就写到这儿吧,得吃饭去了。下午来再接着看,XP要持续开发部署,我来个持续学习lucene,呵呵,走了

   

   

分享到:
评论
1 楼 googya 2009-07-21  
private static void indexFile(IndexWriter writer,File f)throws IOException{
        if(f.isHidden()||!f.exists()||!f.canRead()){
            return;
        }
        System.out.println("Indexing "+f.getCanonicalPath());
        Document doc =new Document();
//        doc.add(Field.Text("contents",new FileReader(f)));
        doc.add(Field.Text)
//        doc.add(Field.Keyword("filename",f.getCanonicalPath()));
        writer.addDocument(doc);

我看到这里就有问题了,是不是接口改了?可能是书老了点吧,Lucene升级也是稍微快了一些!

相关推荐

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

    为了运行 Lucene 示例,首先需要在 Eclipse 中导入这些设置,创建一个 Java 项目,并将 Lucene 相关库(如 `libs` 目录中的 jar 文件)添加到项目的类路径中。 2. **创建索引** - 在 Lucene 中,创建索引是搜索的...

    ssd.rar_lucene_搜索 lucene_搜索引擎_文本搜索

    **Lucene搜索引擎简介** Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护,是Java编程语言中广泛使用的开源搜索引擎框架。它为开发者提供了在应用程序中实现全文索引和搜索功能的基础工具。Lucene的...

    android+lucene实现全文检索并高亮关键字索引库

    在Android平台上实现全文检索并高亮关键字,常常需要用到开源全文搜索引擎Lucene。Lucene是一个高性能、全文本搜索库,提供了一个简单但强大的应用编程接口(API)用于索引和搜索文本。下面我们将深入探讨如何在...

    [搜索链接]java(结合lucene)版的公交搜索系统_javaso.zip

    而Lucene是Apache软件基金会的一个开源项目,它提供了索引和搜索文本的工具,包括分词、建立倒排索引、查询解析和结果排序等功能。 在这个公交搜索系统中,可能包含以下几个关键组件: 1. **数据模型**:定义公交...

    基于JAVA的搜索引擎 lucene-2.2.0

    在前面Lucene-2.2.0 源代码阅读学习(1)中,根据Lucene提供的一个Demo,详细分析研究一下索引器org.apache.lucene.index.IndexWriter类,看看它是如果定义的,掌握它建立索引的机制。 通过IndexWriter类的实现源代码...

    【ASP.NET编程知识】详解Spring Boot 中使用 Java API 调用 lucene.docx

    IndexWriter 是 Lucene 中最重要的类之一,它主要是用来将文档加入索引,同时控制索引过程中的一些参数使用。Analyzer 是 Lucene 中的分析器,主要用于分析搜索引擎遇到的各种文本。Directory 是索引存放的位置,...

    面向手机领域图像资源获取与索引系统

    综上所述,面向手机领域的图像资源获取与索引系统通过网络爬虫技术从互联网上抓取图片,利用Lucene构建索引以实现高效检索,结合图像分类、质量评估等特性,为用户提供便捷的图像资源服务。这样的系统在学术研究、...

    lucene_core_test:这是探索Lucene api用mysql数据库编写索引的用例的非常基本的示例

    这里,我们看到作者尝试将数据库中的数据(可能是MySQL)通过Lucene API建立索引,以便进行快速检索。 描述中提到,这个示例非常基础,旨在帮助读者理解如何将Lucene与MySQL结合使用。这通常涉及从数据库读取数据,...

    搜索引擎 详细源码 src

    1. **索引构建**:搜索引擎的核心工作之一是建立索引。索引是从大量文本中提取出关键词并建立数据结构的过程,以便于快速查找。例如,倒排索引是一种常见的方式,它将每个词关联到包含该词的文档列表。 2. **查询...

    搜索引擎的源代码使用C#编写

    接下来,搜索引擎会建立索引,这是关键的一步。倒排索引是一种常用的数据结构,其中每个词项都指向包含它的文档列表。在C#中,可以使用Dictionary或者HashSet来实现倒排索引,但为了性能考虑,可能需要自定义更高效...

    SearchUtil 4 wc

    从给出的信息来看,"SearchUtil"可能是这个工具的核心类,而"configureMessage.jsp"则可能是用于配置或展示搜索相关消息的JavaServer Pages文件。接下来,我们将深入探讨这两个关键文件可能涉及的IT知识点。 首先,...

    考试类精品--基于SSM实现的招聘考试系统。试题爬取通过WebCollector爬虫框架网上爬取试题,通过Lucen.zip

    在这个系统中,Lucene用于建立试题库的全文索引,用户可以通过关键词快速查找相关的试题,提高查找效率和用户体验。这涉及到索引的构建、查询语法的解析、相关度计算等技术。 4. **试题管理**: 试题数据在系统中...

    DotLucene演示源码

    索引构建完成后,用户可以通过输入关键词进行搜索,DotLucene会迅速找到包含这些关键词的文档,并返回相关的搜索结果。 智能分词是DotLucene的一个关键特性。它使用了词典和复杂的分词算法,能够自动识别并分割出...

Global site tag (gtag.js) - Google Analytics