- 博客(5)
- 资源 (3)
- 收藏
- 关注
原创 PhraseQuery的分析
PhraseQuery是lucene当中比较有特点的一种查询,它可以限定结果中两个term之间的距离。 比如 PhraseQuery query=new PhraseQuery(); query.add(new Term("contents","abc"); query.add(new Term("contents","def");
2007-08-24 18:56:00 4958 1
原创 BooleanQuery的分析
对于一次检索,检索的结果应该和查询相关,同时也应该和索引相关,所以lucene中常用 searcher.search(query)来完成查询功能,searcher考虑了索引,query则考虑了查询的特点。 lucene提供一个Query的抽象类来定义查询。由于查询
2007-08-23 18:10:00 3101
原创 lucene的索引文件
通过实际的程序我们可以观察到,如果不使用复合文件格式来创建索引的话,索引文件很多,这些索引文件记录和Field,Term相关的种种信息,这些信息以一定的格式存放在文件中,并且使用了压缩等多项技术来减少空间占用,不过lucene的压缩结构并没有使查找效率明显降低,适当的冗余还是存在与索引中。 大部分的搜索(数据库)引擎都是用B树结构来维护索引,索引的更新会导致大量的I
2007-08-22 19:54:00 1821
原创 lucene源代码分析(index部分)
lucene的索引 lucene对一系列的文件进行索引时,首先会将物理文件映射为Document类型的文件。Document中包含有和检索相关的field,这个过程将一些感兴趣的内容提取出来,而之后所有的检索都是基于Document的。 lucene的索引分为两种,一种是将不同索引信息写到不同的文件中,一种是使用复合文件索引格式,该索引
2007-08-22 15:47:00 3267 2
原创 lucene 源代码的分析(search部分)
lucene的源代码中各种调用关系不是非常明显,往往你中有我,我中有你,这种写程序的方法对于初次接触的源码的人多少有些困惑,但是从整个程序的结构上来讲,这样的工具包使用起来会更加方便一些,封装的层次性较好,扩展性高。这种抽象的思想很值的研究。 下面是笔者对lucene中search的主体部分(org.apache.lucene.seach)进行的分析。常见的search的
2007-08-20 14:44:00 3258
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人