类 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() -
方法概要
修饰符和类型 方法 说明 voidaddDocument(AbstractDocument document)添加文档到索引,更新索引内部的HashMapjava.util.Set<AbstractTerm>getDictionary()返回索引的字典.字典为索引里所有单词的并集java.lang.StringgetDocName(int docId)根据docId获得对应文档的完全路径名voidload(java.io.File file)从索引文件里加载已经构建好的索引.内部调用FileSerializable接口方法readObject即可voidoptimize()对索引进行优化,包括: 对索引里每个单词的PostingList按docId从小到大排序 同时对每个Posting里的positions从小到大排序 在内存中把索引构建完后执行该方法voidreadObject(java.io.ObjectInputStream in)从二进制文件读voidsave(java.io.File file)将在内存里构建好的索引写入到文件.AbstractPostingListsearch(AbstractTerm term)返回指定单词的PostingListjava.lang.StringtoString()返回索引的字符串表示voidwriteObject(java.io.ObjectOutputStream out)写到二进制文件
-
构造器详细资料
-
Index
public Index()
-
-
方法详细资料
-
toString
public java.lang.String toString()返回索引的字符串表示- 指定者:
toString在类中AbstractIndex- 返回:
- 索引的字符串表示
-
addDocument
添加文档到索引,更新索引内部的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
返回指定单词的PostingList- 指定者:
search在类中AbstractIndex- 参数:
term- : 指定的单词- 返回:
- :指定单词的PostingList;如果索引字典没有该单词,则返回null
-
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- :输入流对象
-