Lemur的检索过程如下图所示,主要包括语句的解析,索引的查找,打分和排序三个部分,具体过程如图四所示。
查询执行是按以下步骤执行的:
1. 根据查询语句中要查询的单词term去frequentString或infrequentString中找出倒排索引在invertedFile中的起始位置和长度。
2. 根据1中得到的invertedFile中的起始位置和长度,读取该单词的倒排索引。
3. 根据查询语句中要查询的元素结点field,由manifest中得到它的倒排索引在fieldsFile中的起始位置和长度,并读取。
4. 根据元素结点的起始和结束编号以及单词的位置编号,判断满足查询路径的元素结点和单词的tf。
5. 根据directFile重构文档的结构信息,并把4中得到的满足查询路径的元素结点和单词,依照Lemur的检索模型进行打分。
把5中得到的结果,排序输出。