
lucene
文章平均质量分 80
csy463168656
这个作者很懒,什么都没留下…
展开
-
lucene学习笔记之构建索引
构建索引2.2理解索引过程文本首先从原始数据中提取出来用于创建对应的Document实例,该实例包括多个Field实例,他们都用来保存原始数据信息,随后的分析过程将域文本处理成大量的语汇单元,最后将语汇单元加入到段结构中。2.2.1提取文本和创建文档有关提取文本信息的细节将在第七章结合Tika框架详谈。2.2.2 分析文档在索引操作时,Lucene首先分析文本,将文本数原创 2012-09-11 14:32:58 · 540 阅读 · 0 评论 -
Lucene的查询对象(1)
以下转自:http://forfuture1978.iteye.com/blog/669444Lucene除了支持查询语法以外,还可以自己构造查询对象进行搜索。从上一节的Lucene的语法一章可以知道,能与查询语句对应的查询对象有:BooleanQuery,FuzzyQuery,MatchAllDocsQuery,MultiTermQuery,MultiPhraseQuery,Phrase转载 2012-12-15 14:29:47 · 786 阅读 · 0 评论 -
Lucene搜索过程解析(7)
以下转自:http://forfuture1978.iteye.com/blog/6328692.4、搜索查询对象2.4.3.2、并集DisjunctionSumScorer(A OR B)DisjunctionSumScorer中有成员变量List subScorers,是一个Scorer的链表,每一项代表一个倒排表,DisjunctionSumScorer就是对这些倒排表取并集,然转载 2012-12-14 14:24:00 · 463 阅读 · 0 评论 -
Lucene搜索过程解析(6)
以下转自:http://forfuture1978.iteye.com/blog/6328592.4、搜索查询对象 2.4.3、进行倒排表合并在得到了Scorer对象树以及SumScorer对象树后,便是倒排表的合并以及打分计算的过程。合并倒排表在此节中进行分析,而Scorer对象树来进行打分的计算则在下一节分析。BooleanScorer2.score(Collector转载 2012-12-14 10:22:09 · 476 阅读 · 0 评论 -
Lucene搜索过程解析(8)
以下转自:http://forfuture1978.iteye.com/blog/6328722.4、搜索查询对象 2.4.4、收集文档结果集合及计算打分在函数IndexSearcher.search(Weight, Filter, int) 中,有如下代码:TopScoreDocCollector collector = TopScoreDocCollector.cre转载 2012-12-14 15:02:06 · 443 阅读 · 0 评论 -
Lucene搜索过程解析(5)
以下转自:http://forfuture1978.iteye.com/blog/6328402.4、搜索查询对象 2.4.2、创建Scorer及SumScorer对象树当创建完Weight对象树的时候,调用IndexSearcher.search(Weight, Filter, int),代码如下://(a)创建文档号收集器TopScoreDocCollector col转载 2012-12-14 09:38:00 · 529 阅读 · 0 评论 -
Lucene搜索过程解析(3)
2.3、QueryParser解析查询语句生成查询对象代码为:QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, "contents", new StandardAnalyzer(Version.LUCENE_CURRENT));Query query = parser.parse("+(+apple* -boy)转载 2012-12-13 14:53:50 · 513 阅读 · 0 评论 -
Lucene搜索过程解析(4)
以下转自:http://forfuture1978.iteye.com/blog/6328292.4、搜索查询对象 2.4.1.2、创建Weight对象树BooleanQuery.createWeight(Searcher) 最终返回return new BooleanWeight(searcher),BooleanWeight构造函数的具体实现如下:public Boolea转载 2012-12-13 15:49:11 · 395 阅读 · 0 评论 -
影响Lucene对文档打分的四种方式
本文转自:http://forfuture1978.iteye.com/blog/591804在索引阶段设置Document Boost和Field Boost,存储在(.nrm)文件中。如果希望某些文档和某些域比其他的域更重要,如果此文档和此域包含所要查询的词则应该得分较高,则可以在索引阶段设定文档的boost和域的boost值。这些值是在索引阶段就写入索引文件的,存储在标准化因子(转载 2012-12-12 10:03:22 · 1268 阅读 · 0 评论 -
Lucene搜索过程解析
本文转自:http://forfuture1978.iteye.com/blog/632815一、Lucene搜索过程总论搜索的过程总的来说就是将词典及倒排表信息从索引中读出来,根据用户输入的查询语句合并倒排表,得到结果文档集并对文档进行打分的过程。其可用如下图示:总共包括以下几个过程:1 IndexReader打开索引文件,读取并打开指向索引文件的流。2 用户输入查询转载 2012-12-11 16:49:57 · 530 阅读 · 0 评论 -
Lucene段合并(merge)过程分析
本文转自:http://forfuture1978.iteye.com/blog/609197一、段合并过程总论IndexWriter中与段合并有关的成员变量有:· HashSet mergingSegments = new HashSet(); //保存正在合并的段,以防止合并期间再次选中被合并。· MergePolicy mergePolicy = new LogByteSiz转载 2012-12-11 14:23:18 · 1019 阅读 · 0 评论 -
Lucene的索引文件格式(二)
本文转自:http://forfuture1978.iteye.com/blog/546841四、具体格式4.2. 反向信息反向信息是索引文件的核心,也即反向索引。反向索引包括两部分,左面是词典(Term Dictionary),右面是倒排表(Posting List)。在Lucene中,这两部分是分文件存储的,词典是存储在tii,tis中的,倒排表又包括两部分,一部分是文转载 2012-12-10 10:04:05 · 535 阅读 · 0 评论 -
Lucene的索引文件格式
这是我学习lucene的笔记,完全参考《lucene原理与代码分析》,作者的博客地址:http://blog.youkuaiyun.com/forfuture1978之前也是尝试着看了的,但是发现一深入源码我就懵了,犯了只见树木不见森林的错误。如何有效阅读源代码,蔡学镛的经验:1) 先阅读架构文档 2) 根据架构,将源码文件以模块(或上下层级)分类 3) 从最独立(依赖性最小)的模块代码读起转载 2012-12-06 18:14:00 · 766 阅读 · 0 评论 -
细说Lucene打分公式
之前有一篇讲解Lucene的打分的,但是那个讲的太浅显了,偶然在网上看到一篇讲的很详细,转载过来,希望对自己有帮助。此文章转自:http://javenstudio.org/blog/lucene-similarity-howto如何给文档评分Similarity类负责给文档评分。文档评分类Similarityorg.apache.lucene.search.Similarit转载 2012-12-05 08:47:52 · 781 阅读 · 0 评论 -
lucene学习笔记之Analyzer和Search
为应用程序添加搜索功能Lucene主要的搜索API类目的IndexSearcher所有搜索通过IndexSearcher进行,它们会调用该类中重载的search方法Query(及其子类)Query实例将被传递给IndexSearcher的search方法QueryParser原创 2012-09-12 15:49:22 · 691 阅读 · 0 评论 -
Lucene的分词器Analyzer
以下转自:http://forfuture1978.iteye.com/blog/6855141、抽象类Analyzer其主要包含两个接口,用于生成TokenStream:· TokenStream tokenStream(String fieldName, Reader reader);· TokenStream reusableTokenStream(String fieldN转载 2012-12-15 15:46:53 · 914 阅读 · 0 评论