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

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:表示域内的信息是否需要分词,通常在中文搜索中使用。