position在Lucene中描述的是一个term在一篇文档中的位置,并且存在一个或多个position。 payload是一个自定义的元数据(mete data)来描述term的某个属性,term在一篇文章中的多个位置可以一一对应多个payload,也可以只有部分位置带有payload。 offset是一对整数值(a pair of integers),即startOffset跟endOffset,它们分别描述了term的第一个字符跟最后一个在文档中的位置。 每一个term在所有文档中的position、payload、offset信息在addDocument()的过程中计算出来,在内存中生成一张倒排表,最终持久化到磁盘时,通过读取倒排表,将position信息写入到.pos文件中,将payload、offset信息写入到.pay文件中。
看这里:http://www.amazingkoala.com.cn/Lucene/suoyinwenjian/2019/0324/41.html