1. 每一个document是被一个terms集合所描述的,通常一个document认为是一块文本,一个term则是一个词语或短语以用作描述document的,在document中大多数会存在着多个term。
2. 如果某个特定的term索引了某个特定的document,那么称之为posting,说白了posting就是带position信息的term,在相关度检索中可能有一定的用途的。
3. 给定一个名为D的document,存在着一个terms列表索引着它,我们称之为D的term list。
4. 给定一个名为t的term,它索引着一个documents列表,这称之为t的posting list。
5. terms是存储于索引文件中的。term可以用作有效地查找它的posting list,在posting list里,每一个document带有一个很短的标识符,就是document id。简单来说,一个posting list是一个由document ids组成的集合,而term list则是一个字符串组成的集合。
6. Terms不一定是要是document中出现的词语,通常它们会被转换为小写,而且往往它们被词干提取算法处理过,因此通过一个值为“connect”的term可能会检索出一系列的词语,例如“connect”、“connects”、“connection”或“connected”等,而一个词语也可能产生多个的terms,例如你会将提取出的词干和未提取的词语都索引起来。
7. Values是附加在document上一种元数据,每一个document可以有多个values,这些values通过不同的数字来标识。Values被设计成在匹配过程中快速地访问,它们可以用作排序、排队多余重复的document和范围检索等用途。虽然values并没有长度限制,但最好让它们尽可能短,如果你仅仅是想存储某个字段以便作为结果显示,那么建议您最好将它们保存在document的data中。
8. 每一个Document只有一个data,可以是任意类型格式的数据,当然在存储的时候请先转换为字符串。而在读取的时候反序列化读取。
9. Xapian里的所有东西是用UTF-8来保存的,UTF-8是Unicode的一种实现。