倒排索引 倒排表

为什么我们要说倒排索引呢? 
    因为倒排索引是目前 搜索引擎公司最对搜索引擎最常用的存储方式.也是搜索引擎的核心内容!
    在搜索引擎实际的引用之中,有时需要按照关键字的某些值查找记录,所以我们是按照关键字建立索引,这个索引我们就称之为: 倒排索引, 而带有倒排索引的文件我们又称作: 倒排索引文件 也可以叫它为: 倒排文件 来实现快速的检索与高速的效率!

那我想问下 什么是倒排表呢?
     倒排文件中的 次关键字索引 我们称做: 倒排表
     其主要优点是: 在处理复杂的多关键字查询时,可在倒排表中先完成查询的交、并等逻辑运算,得到结果后再对记录进行存取。这样不必对每个记录随机存取,把对记录的查询转换为地址集合的运算,从而提高查找速度!



下面就是整个倒排表的建立过程(组图):

  数据表

 
索引表
 
右项归并后的索引表
 

那我最后问下 我们因该怎样建立倒排索引呢?
关于建立倒排索引其实就象我们写一本小说一样 目录是章节标题对应的页码 对全文搜索来讲 倒排索引就是词对应文档编号!
下面我们举个例子:
案例1:
 普通文档存在形式:(从文件到关键字的搜索)
      PPT (从头看起.....)==> keywords1,keywords2,keywords3,keywords4,keywords5,.............
案例2:
  倒排索引翻转后的结果显示:(从关键字到文件的搜索)
      keywords1,keywords2,keywords3,keywords4,keywords5,............. (直接找关键字 然后在找内容页)==> PPT

 不知您看懂了没!  如果还不是很清楚 我在举个例子 最简单的:
       我们随便看什么书 我想 因该是分2种看法 一种是 从头到尾法! 而 另一种就是 先看目录 看那些 是我需要看的 那么 直接就翻到 该页面! 不然 和第一个人一样从头一直看 看到你想要看的 那不是 前面时间都浪费了??  目录就起了个 关键作用! 这下因该懂了把! 如果还不清楚 不要紧 看看 上面的 倒排表 你就因该懂了.

转载于:https://www.cnblogs.com/fora/archive/2010/06/12/1756796.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要建立一个简单的倒排索引表,可以按照以下步骤进行: 1. 读取文本文件,将每个文档中的单词分解成一个个的词项。 2. 对每个词项建立一个包含该词项的文档列表。 3. 对文档列表进行排序,可以按照文档编号或者其他排序方式进行排序。 4. 建立一个词项与文档列表的映射关系表。 以下是一个示例代码: ``` import os # 读取文本文件,将每个文档中的单词分解成一个个的词项 def get_words(file_path): with open(file_path, 'r') as f: return f.read().split() # 对每个词项建立一个包含该词项的文档列表 def build_index(file_dir): index = {} for file_name in os.listdir(file_dir): file_path = os.path.join(file_dir, file_name) words = set(get_words(file_path)) for word in words: if word not in index: index[word] = [] index[word].append(file_name) return index # 对文档列表进行排序 def sort_index(index): for word in index: index[word].sort() # 建立一个词项与文档列表的映射关系表 def build_mapping(index): mapping = {} for word in index: mapping[word] = ','.join(index[word]) return mapping # 示例 file_dir = './documents' index = build_index(file_dir) sort_index(index) mapping = build_mapping(index) print(mapping) ``` 在上面的示例代码中,`file_dir` 是包含文本文件的文件夹,`build_index` 函数会对每个文本文件建立倒排索引表,`sort_index` 函数会对文档列表进行排序,`build_mapping` 函数会建立一个词项与文档列表的映射关系表。最后,我们可以打印出这个映射关系表,得到每个词项对应的文档列表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值