类 Index

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

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

    从类继承的字段 hust.cs.javacourse.search.index.AbstractIndex

    docIdToDocPathMapping, termToPostingListMapping
  • 构造器概要

    构造器 
    构造器 说明
    Index()  
  • 方法概要

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

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

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • 构造器详细资料

  • 方法详细资料

    • toString

      public java.lang.String toString()
      返回索引的字符串表示
      指定者:
      toString 在类中 AbstractIndex
      返回:
      索引的字符串表示
    • addDocument

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

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

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

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

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

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

      public java.lang.String getDocName​(int docId)
      根据docId获得对应文档的完全路径名
      指定者:
      getDocName 在类中 AbstractIndex
      参数:
      docId - :文档id
      返回:
      : 对应文档的完全路径名
    • writeObject

      public void writeObject​(java.io.ObjectOutputStream out)
      写到二进制文件
      参数:
      out - :输出流对象
    • readObject

      public void readObject​(java.io.ObjectInputStream in)
      从二进制文件读
      参数:
      in - :输入流对象