摘要: 四、具体格式 上面曾经交代过,Lucene保存了从Index到Segment到Document到Field一直到Term的正向信息,也包括了从Term到Document映射的反向信息,还有其他一些Lucene特有的信息。下面对这三种信息一一介绍。 4.1. 正向信息 Index –> Segments (segments.gen, segments_N) –> Field(fnm, fdx, fdt) –> Term (tvx, tvd, tvf) 上面的层次结构不是十分的准确,因为segments.gen和segments_N保存的是段(segment)的元数据信息(met 阅读全文
posted @ 2009-12-14 12:35 刘超觉先 阅读(26638) 评论(4) 推荐(5) 编辑
摘要: Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙。 当我们真正进入到Lucene源代码之中的时候,我们会发现: Lucene的索引过程,就是按照全文检索的基本过程,将倒排表写成此文件格式的过程。 Lucene的搜索过程,就是按照此文件格式将索引进去的信息读出来,然后计算每篇文档打分(score)的过程。 本文详细解读了Apache Lucene - Index File Formats(http://lucene.apache.org/java/2_9_0/fileformats.html) 这篇文章。 一、基本概念 下图... 阅读全文
posted @ 2009-12-14 12:34 刘超觉先 阅读(56580) 评论(9) 推荐(12) 编辑
摘要: Lucene总的来说是: 一个高效的,可扩展的,全文检索库。 全部用Java实现,无须配置。 仅支持纯文本文件的索引(Indexing)和搜索(Search)。 不负责由其他格式的文件抽取纯文本文件,或从网络中抓取文件的过程。 在Lucene in action中,Lucene 的构架和过程如下图, 说明Lucene是有索引和搜索的两个过程,包含索引创建,索引,搜索三个要点。 让我们更细一些看Lucene的各组件: 被索引的文档用Document对象表示。 IndexWriter通过函数addDocument将文档添加到索引中,实现创建索引的过程。 Lucene的... 阅读全文
posted @ 2009-12-14 12:32 刘超觉先 阅读(27611) 评论(4) 推荐(13) 编辑
摘要: 全文检索大体分两个过程,索引创建(Indexing)和搜索索引(Search)。 * 索引创建:将现实世界中所有的结构化和非结构化数据提取信息,创建索引的过程。 * 搜索索引:就是得到用户的查询请求,搜索创建的索引,然后返回结果的过程。 于是全文检索就存在三个重要问题: 1. 索引里面究竟存些什么?(Index) 2. 如何创建索引?(Indexing) 3. 如何对索引进行搜索?(Search) 阅读全文
posted @ 2009-12-14 12:31 刘超觉先 阅读(71506) 评论(55) 推荐(56) 编辑