lucene+nutch学习笔记四:搜索引擎信息索引

     在实际的生活中,Nutch只能从网络上收集网页,而对网页本身的分析却不能很好的处理。搜索引擎普遍采用全文检索技术,平常的word的字处理工具的查询采用的是顺序扫描文件,这种做法效率比较低,遇到大型的文件则根本就不使用。所以出现了索引这个技术。

   概括来说: 索引就是给一个文本内容按照一定的格式进行数据重排,使其便与查找。索引技术的核心是倒排索引的结构。倒排索引(Inverted Index)

  索引的分类

               按照类型来分:可以分为:字索引,词索引,短语索引,混合索引(实现比较复杂)。

               按照管理方式分:可以分为:静态索引和动态索引

      Lucene的索引的介绍:主要包括独立索引模式和复合索引模式。独立索引模式是指每个document独立索引成一个文件,这样数度快,但不适合大量的文档。复合索引就是把所有的Document索引成一个文件,这个文件的内容不同,也可以包括异构型文档。

索引文件可以存放在磁盘和内存中,在磁盘中,可以重复利用,但增加了IO,在内存中,虽数度快,但不能保存。lucene的索引以文件的形式存储,不依赖特定的数据库和操作系统,它是跨平台的。

      Lucene的索引结构

                     可以分为,索引索引断索引文档索引域索引项几个。每个索引的结构有一个或多个索引段组成,每个段包含一个或多个文档,每个文档管理一个或多个域,每个域有一个或多个索引项组成。每个索引项是一个索引数据。

                1索引(INDEX)

                    2索引段(SeGment)

                    3索引文档(Document)

                    4索引域(Field)

                    5索引项(Term)

  其中Field有多个构造函数,下面这个是参数最多的一个。注意是lucene2.3目前最新为2.4

   public Field(String name, String value, Store store, Index index, TermVector termVector) {

  name,是一个字符串,表示的是需要被索引的属性的名字,可以是name,path,content。

  value,是值,可以为字符串,也可以是Reader类型

  store,表示数据本身是否需要存储,有YES,NO,COMPRESS 三中选择。

  index,表示数据是否需要索引。也就是说这个数据是否哪来查询,这里和数据库不同,数据库的索引字段可以查询,没被索引的字段也可以查询,但这里没被索引的Field不能查询。

         A:TOKENIZED:分词并建立索引

         B:NO :不建立索引

         C:UN_TOKENIZED把内容作为一个整体,避免分词的麻烦。

         D:NO_NORMS  禁用分析器处理。

termVector:表示域内的信息是否需要分词,通常在中文搜索中使用。

相关推荐