有几种流行的文本检索索引技术,例如倒排索引和签名文件。
倒排索引- 倒排索引是一种索引结构,它维护两个散列索引或 B+ 树索引表:document_table 和 term_table,其中 document_table 由一组文档记录组成,每个记录包括两个字段:doc_id 和posting_list,其中posting_list 是一个列表出现在文档中的方法(或指向方法的指针)的数量,根据某种相关性度量排列。
term_table 包括一组术语记录,每个记录包括两个字段:term_id 和posting_list,其中posting_list 指定了出现该术语的记录标识符列表。
它可以找到与一组给定的术语相关联的所有文档。它用于查找与给定文档集相关的所有术语。例如,它可以找到与一组术语相关联的所有文档,我们可以先在术语表中找到每个术语的文档标识符列表,然后将它们相交以获得相关记录的集合。
市场上广泛使用倒排指数。它们易于执行。发布列表可能相当长,从而产生相当大的存储需求。它们易于实现,但在管理同义词(两个截然不同的词可以具有相同的含义)和多义词(其中一个词可以具有多种含义)方面并不令人满意。
签名文件是为签名中的每条记录保存签名数据的文件,database.Each具有固定大小的 b 位定义项。一个简单的编码设计如下。记录签名的每一位都从 0 开始。
如果它定义的术语出现在记录中,则该位设置为 1。如果在签名S 2 中设置的每个位也在S 1 中设置,则签名S 1匹配另一个签名S 2。因为术语通常比可用位多,所以可以将几个术语映射到一个相似的位。
这种多对一的映射使搜索变得昂贵,因为连接查询签名的记录不一定包括查询的关键字集。必须对记录进行检索、解析、tested.Improvements词干提取,并且可以通过首先实施频率分析、词干提取和过滤停用词,然后利用散列方法和叠加编码技术将方法列表编码为位表示来创建记录。