类 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 voidaddDocument(AbstractDocument document)添加文档到索引,更新索引内部的HashMapabstract java.util.Set<AbstractTerm>getDictionary()返回索引的字典.字典为索引里所有单词的并集abstract java.lang.StringgetDocName(int docId)根据docId获得对应文档的完全路径名abstract voidload(java.io.File file)从索引文件里加载已经构建好的索引.内部调用FileSerializable接口方法readObject即可abstract voidoptimize()对索引进行优化,包括: 对索引里每个单词的PostingList按docId从小到大排序 同时对每个Posting里的positions从小到大排序 在内存中把索引构建完后执行该方法abstract voidsave(java.io.File file)将在内存里构建好的索引写入到文件.abstract AbstractPostingListsearch(AbstractTerm term)返回指定单词的PostingListabstract java.lang.StringtoString()返回索引的字符串表示
-
字段详细资料
-
docIdToDocPathMapping
public java.util.Map<java.lang.Integer,java.lang.String> docIdToDocPathMapping内存中的docId和docPath的映射关系, key为docId,value为对应的docPath. TreeMap可以对键值排序 -
termToPostingListMapping
内存中的倒排索引结构为HashMap,key为Term对象,value为对应的PostingList对象.
-
-
构造器详细资料
-
AbstractIndex
public AbstractIndex()缺省构造函数,构建空的索引
-
-
方法详细资料
-
toString
public abstract java.lang.String toString()返回索引的字符串表示- 覆盖:
toString在类中java.lang.Object- 返回:
- 索引的字符串表示
-
addDocument
添加文档到索引,更新索引内部的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
返回指定单词的PostingList- 参数:
term- : 指定的单词- 返回:
- :指定单词的PostingList;如果索引字典没有该单词,则返回null
-
getDictionary
返回索引的字典.字典为索引里所有单词的并集- 返回:
- :索引中Term列表
-
optimize
public abstract void optimize()对索引进行优化,包括: 对索引里每个单词的PostingList按docId从小到大排序 同时对每个Posting里的positions从小到大排序 在内存中把索引构建完后执行该方法 -
getDocName
public abstract java.lang.String getDocName(int docId)根据docId获得对应文档的完全路径名- 参数:
docId- :文档id- 返回:
- : 对应文档的完全路径名
-