开源搜索项目-倒排索引代码解析(一)

本文分享了一篇关于开源搜索项目的文章,主要聚焦于倒排索引的代码解析。内容来源于网络转载,适合对搜索技术和倒排索引感兴趣的读者。同时,文中提及作者的老师提供的人工智能教程,教程特点包括零基础、通俗易懂、风趣幽默,旨在吸引更多的学习者加入人工智能领域。
摘要由CSDN通过智能技术生成
               

转载:http://www.mingyuanfeng.co.cc/search/label/%E5%80%92%E6%8E%92%E7%B4%A2%E5%BC%95%EF%BC%8C%E5%BC%80%E6%BA%90%EF%BC%8C%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E


搜索引擎的底层索引使用一种叫“倒排索引”(inverted index)的索引结构,倒排索引的结构容易理解,一张词(term)列表,加相应的docID链表。
貌似“简单”的倒排索引实际实现起来却并不那么容易,在内存中如何设计数据结构,在文件块中如何存储,如何压缩,如何加速查询,这些绝不是纸上画一下倒排索引图就可以的。witten 在其大作 Managing Gigabytes: Compressing and Indexing Documents and Images 中洋洋洒洒写了一大本,JUSTIN ZOBEL也在其大作Inverted Files for Text Search Engines中写了50多页,可见倒排索引不是那么"简单"的....


实践出真知,lucene和lemur的代码比较"大",刚开始以小的项目入手,查了一下刚好有个适合的范本, http://www.oschina.net/ 开源中国里面有一个小的索引项目,叫卢福福搜索引擎 luyfsearch,名字倒是很可爱~~

google主页:

oschina主页:

正像作者自己所言,这个项目无法实际应用,但是作为学习范本确实不错,里面的编程方法都模仿了lucene的实现。


先看一个典型的做索引的API函数流程,有一个感性认识:
这个代码片段与用lucene建索引的过程是非常相近的。
IndexWriter *indexWriter=new IndexWriter(); //新建IndexWriter
indexWriter->open("/home/luyf/index/",true); //打开索引目录
indexWriter->setBufferDoc(2);
Document doc; //新建document 对象 <
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值