类 AbstractIndex

java.lang.Object
hust.cs.javacourse.search.index.AbstractIndex
所有已实现的接口:
FileSerializable, java.io.Serializable
直接已知子类:
Index

public abstract class AbstractIndex
extends java.lang.Object
implements FileSerializable
 AbstractIndex是内存中的倒排索引对象的抽象父类.
      一个倒排索引对象包含了一个文档集合的倒排索引.
      内存中的倒排索引结构为HashMap,key为Term对象,value为对应的PostingList对象.
      另外在AbstractIndex里还定义了从docId和docPath之间的映射关系.
      必须实现下面接口:
          FileSerializable:可序列化到文件或从文件反序列化.
 
另请参阅:
序列化表格
  • 字段概要

    字段 
    修饰符和类型 字段 说明
    java.util.Map<java.lang.Integer,​java.lang.String> docIdToDocPathMapping
    内存中的docId和docPath的映射关系, key为docId,value为对应的docPath.
    java.util.Map<AbstractTerm,​AbstractPostingList> termToPostingListMapping
    内存中的倒排索引结构为HashMap,key为Term对象,value为对应的PostingList对象.
  • 构造器概要

    构造器 
    构造器 说明
    AbstractIndex()
    缺省构造函数,构建空的索引
  • 方法概要

    修饰符和类型 方法 说明
    abstract void addDocument​(AbstractDocument document)
    添加文档到索引,更新索引内部的HashMap
    abstract java.util.Set<AbstractTerm> getDictionary()
    返回索引的字典.字典为索引里所有单词的并集
    abstract java.lang.String getDocName​(int docId)
    根据docId获得对应文档的完全路径名
    abstract void load​(java.io.File file)
    从索引文件里加载已经构建好的索引.内部调用FileSerializable接口方法readObject即可
    abstract void optimize()
    对索引进行优化,包括: 对索引里每个单词的PostingList按docId从小到大排序 同时对每个Posting里的positions从小到大排序 在内存中把索引构建完后执行该方法
    abstract void save​(java.io.File file)
    将在内存里构建好的索引写入到文件.
    abstract AbstractPostingList search​(AbstractTerm term)
    返回指定单词的PostingList
    abstract java.lang.String toString()
    返回索引的字符串表示

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    从接口继承的方法 hust.cs.javacourse.search.index.FileSerializable

    readObject, writeObject
  • 字段详细资料

    • docIdToDocPathMapping

      public java.util.Map<java.lang.Integer,​java.lang.String> docIdToDocPathMapping
      内存中的docId和docPath的映射关系, key为docId,value为对应的docPath. TreeMap可以对键值排序
    • termToPostingListMapping

      public java.util.Map<AbstractTerm,​AbstractPostingList> termToPostingListMapping
      内存中的倒排索引结构为HashMap,key为Term对象,value为对应的PostingList对象.
  • 构造器详细资料

    • AbstractIndex

      public AbstractIndex()
      缺省构造函数,构建空的索引
  • 方法详细资料

    • toString

      public abstract java.lang.String toString()
      返回索引的字符串表示
      覆盖:
      toString 在类中 java.lang.Object
      返回:
      索引的字符串表示
    • addDocument

      public abstract void addDocument​(AbstractDocument document)
      添加文档到索引,更新索引内部的HashMap
      参数:
      document - :文档的AbstractDocument子类型表示
    • load

      public abstract void load​(java.io.File file)
       从索引文件里加载已经构建好的索引.内部调用FileSerializable接口方法readObject即可
      参数:
      file - :索引文件
    • save

      public abstract void save​(java.io.File file)
       将在内存里构建好的索引写入到文件. 内部调用FileSerializable接口方法writeObject即可
      参数:
      file - :写入的目标索引文件
    • search

      public abstract AbstractPostingList search​(AbstractTerm term)
      返回指定单词的PostingList
      参数:
      term - : 指定的单词
      返回:
      :指定单词的PostingList;如果索引字典没有该单词,则返回null
    • getDictionary

      public abstract java.util.Set<AbstractTerm> getDictionary()
      返回索引的字典.字典为索引里所有单词的并集
      返回:
      :索引中Term列表
    • optimize

      public abstract void optimize()
       对索引进行优化,包括:
            对索引里每个单词的PostingList按docId从小到大排序
            同时对每个Posting里的positions从小到大排序
       在内存中把索引构建完后执行该方法
       
    • getDocName

      public abstract java.lang.String getDocName​(int docId)
      根据docId获得对应文档的完全路径名
      参数:
      docId - :文档id
      返回:
      : 对应文档的完全路径名