摘要: 一、Lucene的查询语法Lucene所支持的查询语法可见http://lucene.apache.org/java/3_0_1/queryparsersyntax.html(1) 语法关键字+ - && || ! ( ) { } [ ] ^ " ~ * ? : /如果所要查询的查询词中本身包含关键... 阅读全文
posted @ 2014-06-25 14:25 lujinhong 阅读(489) 评论(0) 推荐(0) 编辑
摘要: 一、Lucene搜索过程总论搜索的过程总的来说就是将词典及倒排表信息从索引中读出来,根据用户输入的查询语句合并倒排表,得到结果文档集并对文档进行打分的过程。其可用如下图示:总共包括以下几个过程:IndexReader打开索引文件,读取并打开指向索引文件的流。用户输入查询语句将查询语句转换为查询对象Q... 阅读全文
posted @ 2014-06-25 14:23 lujinhong 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 在进行Lucene的搜索过程解析之前,有必要单独的一张把Lucene score公式的推导,各部分的意义阐述一下。因为Lucene的搜索过程,很重要的一个步骤就是逐步的计算各部分的分数。Lucene的打分公式非常复杂,如下:在推导之前,先逐个介绍每部分的意义:t:Term,这里的Term是指包含域信... 阅读全文
posted @ 2014-06-25 14:20 lujinhong 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 一、段合并过程总论IndexWriter中与段合并有关的成员变量有:HashSet mergingSegments = new HashSet(); //保存正在合并的段,以防止合并期间再次选中被合并。MergePolicy mergePolicy = new LogByteSizeMergePol... 阅读全文
posted @ 2014-06-25 14:20 lujinhong 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 对于Lucene的索引过程,除了将词(Term)写入倒排表并最终写入Lucene的索引文件外,还包括分词(Analyzer)和合并段(merge segments)的过程,本次不包括这两部分,将在以后的文章中进行分析。Lucene的索引过程,很多的博客,文章都有介绍,推荐大家上网搜一篇文章:《Ann... 阅读全文
posted @ 2014-06-25 14:18 lujinhong 阅读(341) 评论(0) 推荐(0) 编辑
摘要: Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙。当我们真正进入到Lucene源代码之中的时候,我们会发现:Lucene的索引过程,就是按照全文检索的基本过程,将倒排表写成此文件格式的过程。Lucene的搜索过程,就是按照此文件格式将索... 阅读全文
posted @ 2014-06-25 14:15 lujinhong 阅读(194) 评论(0) 推荐(0) 编辑
摘要: Lucene总的来说是:一个高效的,可扩展的,全文检索库。全部用Java实现,无须配置。仅支持纯文本文件的索引(Indexing)和搜索(Search)。不负责由其他格式的文件抽取纯文本文件,或从网络中抓取文件的过程。在Lucene in action中,Lucene 的构架和过程如下图,说明Luc... 阅读全文
posted @ 2014-06-25 14:12 lujinhong 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 一、总论根据http://lucene.apache.org/java/docs/index.html定义:Lucene是一个高效的,基于Java的全文检索库。所以在了解Lucene之前要费一番工夫了解一下全文检索。那么什么叫做全文检索呢?这要从我们生活中的数据说起。我们生活中的数据总体分为两种:结... 阅读全文
posted @ 2014-06-25 14:11 lujinhong 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 使用Eclipse编辑文件经常出现中文乱码或者文件中有中文不能保存的问题,Eclipse提供了灵活的设置文件编码格式的选项,我们可以通过设置编码 格式解决乱码问题。在Eclipse可以从几个层面设置编码格式:Workspace、Project、Content Type、File本文以Eclipse ... 阅读全文
posted @ 2014-06-25 11:23 lujinhong 阅读(292) 评论(0) 推荐(0) 编辑