Chinaunix首页 | 论坛 | 博客

Art

  • 博客访问: 48415
  • 博文数量: 39
  • 博客积分: 2000
  • 博客等级: 大尉
  • 技术积分: 400
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-11 17:10
文章分类

全部博文(39)

文章存档

2010年(1)

2009年(14)

2008年(24)

我的朋友
最近访客

分类:

2008-11-30 10:46:08

准备工作:
用Nutch的crawler先爬好数据,假设数据存放的文件夹为crawl,要设置cong/nutch-site.xml下的searcher.dir的value为该文件夹,然后运行NutchBean,注意要加query参数。
 
过程之一:
进行一些列的初始化后,nutch调用了import org.apache.lucene.search.Searcher类
在其public TopDocs optimize(BooleanQuery original,
                         Searcher searcher, int numHits,
                          String sortField, boolean reverse)
    throws IOException {
函数中,建立了BooleanQuery
在没有设置searcherMaxHits和timerThread的情况下,会直接调用searcher.search(query, filter, numHits),再调用search(createWeight(query), filter, n)进入Lucene的searcher包中。
如果设置参数限制,情况也类似。
 
过程之二:
简述Lucene的searcher的评分过程如下:
1、创建Query,将之传给Searcher
2Searcher通过Query创建Weight
3Weight创建Scorer
4Searcher创建collector并将之传给Scorer
5scorer根据match程度,计算出score
6、将score写到collector
这里都用基类来代替,事实上,lucene的执行是这些类的子类的多态实现。
protected Weight createWeight(Query query) throws IOException {
      return query.weight(this);
  }//通过此函数实现步骤2
 
未完待续。。。
 
 
 
阅读(412) | 评论(0) | 转发(0) |
0

上一篇:MFC相关

下一篇:C语言点滴

给主人留下些什么吧!~~