linux c 索引使用情况,基于 linux、c 的倒排索引(原创哦~)

基于 linux、c 的倒排索引(原创哦~)

(2008-07-23 11:10:57)

标签:

倒排索引

linux

c语言

开源

该程序是基于 linux 和 c 语言运用倒排索引原理实现的一个本地搜索程序。分为两个部分:统计部分,

搜索部分。

统计部分:

1 首先由用户提供的要统计路径开始向下遍历,根据后缀名筛选出要统计的文件,由零开始依此往后编

号并写入名为“textfile.t”的文件。

2 从 textfile.t 中读入需要统计的文件,抽取出其中的字符串,对应上文档号,在内存中用快速排序

对其排序写入后缀名为“i"的文件中,每个这样的文件最多能写入 150000 个单元。至此将得到诸多后缀

名为”i”的文件,这些文件是在单个文件内部是呈字典序的,整体上是无序的。

3 用多路归并树归并这些文件,一定数量后将存储到硬盘,最终生成系列后缀名为”inv”文件。

4 再处理 inv 文件,将关键字(字符串)后的文档号排序,并记录每个词在该文档中的次数。生成后缀

名为“ind"的文件。

5 在生成 inv 文件的过程中,记录每个文件第一个字符串,并和起所在文档对应,生成“Bfile.t“文

件(B 树),为建立二次索引做准备。

搜索部分:

首先将 textfile.t 文件、Bfile.t 文件读入内存,然后根据用户要提供的字符串先二分搜索 Bfile.t

文件在内存中的映射表,得到关键字所在的 ind 文件名,将该文件读入内存,再二分搜索该文件得到所

在文档的文档号,然后在 textfile.t 文件在内存中的映射表中找到路径名,打印出来。打印次序未经

处理。如果是多个搜索字符串,则对搜索结果进行布尔计算,求交集,最终将包含所有这些字符串的文

件路径打印出来。

下面是源码,如果有用linux的朋友想要了解的更详尽,我可以把我整理后的程序源码,程序介绍,可执行程序发你。

我的邮箱zfzgodfather@gmail.com,有建议欢迎欢迎发邮件。

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值