`

Bobo-Browse 如何修改评分机制

阅读更多
  Bobo使用它的服务可以参考 BoboBrowseServiceImpl.java 在bobo-service/src目录,包package com.browseengine.bobo.service.impl下。

  在Bobo新的版本下2.5.0下 比上一个版本2.0.6做了大的修改,所以里面的评分机制也做了修改。


1)继承 BoboSubBrowser ,实现其中的 search
示例代码:
public class VoBoboSubBrowser extends BoboSubBrowser {

	public VoBoboSubBrowser(BoboIndexReader reader) {
		super(reader);
		// TODO Auto-generated constructor stub
	}
	
	@Override
	  public void search(Weight weight, Filter filter, Collector collector) throws IOException
	  {
	    search(weight, filter, collector, 0);
	  }

}


2)继承SortCollector 实现其中的方法
示例代码:

public class VoSortCollectorImpl extends SortCollector {
protected VoSortCollectorImpl(SortField[] sortFields, boolean fetchStoredFields) {
		super(sortFields, fetchStoredFields);
		// TODO Auto-generated constructor stub
	}

	@Override
	public int getTotalHits() {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public BrowseHit[] topDocs() throws IOException {
		// TODO Auto-generated method stub
		return null;
	}
......
}


3)继承MultiBoboBrowser 实现 getSortCollector,其中用到了VoBoboSubBrowser,VoSortCollectorImpl   
示例代码:

public class VoMultiBoboBrowser extends MultiBoboBrowser {

//根据传进来的BoboIndexReader,构造出 protected final Browsable[] _subBrowsers;
	public VoMultiBoboBrowser(Browsable[] browsers) throws IOException {
		super(browsers);

	}

	
		
	  public static Browsable[] createBrowsables(BoboIndexReader reader)
	  {
	    List<IndexReader> readerList = new ArrayList<IndexReader>();
	    ReaderUtil.gatherSubReaders(readerList, reader);
	    IndexReader[] subReaders = (IndexReader[])readerList.toArray(new IndexReader[readerList.size()]);
	    if(subReaders == null || subReaders.length == 0)
	    {
	      return new Browsable[]{ new VoBoboSubBrowser(reader) };
	    }
	    else
	    {
	      Browsable[] subBrowsables = new Browsable[subReaders.length];
	      for(int i = 0; i < subReaders.length; i++)
	      {
	        subBrowsables[i] = new VoBoboSubBrowser((BoboIndexReader)subReaders[i]);
	      }
	      return subBrowsables;
	    }
	  }
	  
	  public static Browsable[] createBrowsables(List<BoboIndexReader> readerList){
		  List<Browsable> browsableList = new ArrayList<Browsable>();
		  for (BoboIndexReader boboReader : readerList){
			  Browsable[] sub = createBrowsables(boboReader);
			  browsableList.addAll(Arrays.asList(sub));
		  }
		  return browsableList.toArray(new Browsable[browsableList.size()]);

	  }
	  
//这儿应该使用VoSortCollectorImpl
	@Override
	public SortCollector getSortCollector(SortField[] sort, Query q, int offset, int count, boolean fetchStoredFields, boolean forceScoring) {
		if (_subBrowsers.length == 1) {
			return _subBrowsers[0].getSortCollector(sort, q, offset, count, fetchStoredFields, forceScoring);
		}
			//return SortCollector.buildSortCollector(this, q, sort, offset, count, forceScoring, fetchStoredFields);
		return VoMultiBoboBrowser.buildSortCollector(this, q, sort, offset, count, forceScoring, fetchStoredFields);
	}
	
	
	public static SortCollector buildSortCollector(Browsable browser,Query q,SortField[] sort,int offset,int count,boolean forceScoring,boolean fetchStoredFields){
                   ......		
		return new VoSortCollectorImpl(compSource, sort, browser, offset, count, doScoring, fetchStoredFields);
	}}



4)在BoboBrowseServiceImpl.java中,使用VoMultiBoboBrowser









细节需要修改,暂时结束。
0
0
分享到:
评论

相关推荐

    lucene facet bobo-browse实现

    《Lucene Facet 使用Bobo-Browse实现详解》 在信息检索领域,Lucene作为一款强大的全文搜索引擎,被广泛应用于各种复杂的数据检索场景。然而,随着数据量的日益增大,如何有效地对搜索结果进行分类和统计,即所谓的...

    基于bobo-browse自定义统计类实现

    基于bobo-browse参照path统计方式实现类扩展自定义自己的实现类,可实现分类编码每4位为一个级别:如:1000000100301001 即可统计出1000、10000001、100000010030、1000000100301001,也可选择从第几级开始最多统计...

    bobo-chat-client win

    bobo-chat-client可能使用SSL/TLS协议加密通信,防止中间人攻击,同时可能还有账户验证和权限管理机制,以保护用户隐私。 9. **文件存储**: 虽然压缩包内没有明确提及,但聊天记录通常会被存储在本地,方便用户...

    bobo-chat-server

    详细见 见https://gitee.com/BoBojc/bobo-chat-server

    BOBO--影楼专用版PHOTOSHOP全自动平台动作.rar

    【标题】"BOBO--影楼专用版PHOTOSHOP全自动平台动作.rar"指的是一个针对影楼行业的Photoshop自动化操作集合。这个压缩包文件包含了多种专业级别的动作(Actions),是Photoshop用户,尤其是影楼后期制作人员提升工作...

    Python库 | bobo-2.0.0.tar.gz

    "Python库 | bobo-2.0.0.tar.gz" 是一个针对Python编程语言的库,版本号为2.0.0,它被封装在tar.gz格式的压缩包中。这个压缩包的名字是“bobo-2.0.0”,这通常意味着库的名称为“bobo”。tar.gz是一种常见的打包和...

    bobo-chat-client lunix

    【标题】"bobo-chat-client lunix" 是一个专为Linux操作系统设计的Bobo聊天客户端。这个客户端基于Java Socket技术,允许用户通过TCP/IP协议在本地网络或互联网上进行实时通信。Bobo Chat Client旨在提供一个简洁、...

    论文研究 - 布基纳法索Bobo-Dioulasso的一名优秀运动员的心电图

    作者打算描述Bobo-Dioulasso顶尖运动员的静息心电图特征。 这项描述性横向研究于2015年8月至2016年2月在Bobo-Dioulasso的CHU Sanou Souro心脏病学部门进行。 该研究对年龄在17至35岁之间的顶级运动员进行了抽样调查...

    论文研究 - 大学医院Souro Sanou Bobo-Dioulasso(布基纳法索)的上消化道内窥镜检查,约1022例:观察到体征和病变

    我们报告了在西布基纳法索(西非)的Bobo-Dioulasso CHU-SS进行的1022上消化道内窥镜检查的结果。 这项研究的目的是记录在CHUSS的高内镜检查中发现的适应症和病变。 患者与方法:这是一项横断面研究,旨在描述2015...

    bobo-2.4.0

    bobo-2.4.0

    论文研究 - Bobo-Dioulasso(布基纳法索)市学生的饮食行为

    这项研究的目的是描述Bobo-Dioulasso市(布基纳法索)的学生饮食。 方法:这是一项描述性横断面研究,于2016年3月至4月进行,涉及Bobo-Dioulasso市公立和私立学校的1、4、7年级学生。 饮食调查方法可以提醒您过去24...

    论文研究 - Bobo-Dioulasso大学教学医院性活跃妇女中高危人类乳头瘤病毒感染的分子流行病学

    这项研究的目的是确定布基纳法索Bobo-Dioulasso的性活跃妇女群体中HPV-HR基因型的流行程度。 方法:这项研究于2017年9月至2017年6月在Bobo-Dioulasso的Souro Sanou教学医院进行。在同意后,总共有234名处于妇科和性...

    论文研究 - 甜/脂食品摄入过多:Bobo-Dioulasso(布基纳法索)市中学生的决定因素

    方法:这项横断面研究于2016年3月至4月在Bobo-Dioulasso市的公立和私立学校的1、4、7年级学生中进行。 营养调查方法包括提醒人们过去24小时与食物消费频率问卷相关的信息。 过量摄入甜饮料的定义是每天消耗超过3种...

    2016年布基纳法索Bobo-Dioulasso妇女的人工色素沉着状况

    该研究的目的是了解Bobo-Dioulasso市妇女人口中的DA现象。 方法:这是一项描述性横断面研究,于2016年4月16日至4月30日进行,包括437名年龄在13至55岁之间的女性。 实现了多阶段随机抽样。卡方检验用于比较显着阈值...

    BOBO - 假如.mp3

    音乐

    论文研究 - 在布基纳法索Bobo-Dioulasso一家工厂的腰果手工剥壳链中,观察到妇女的皮肤损害和审美劣势

    发病率和各种偏见关系到不同的参与者,尤其是在Bobo-Dioulasso到布基纳法索的腰果行业。 我们认为适合在工厂的腰果脱壳站中处理腰果的妇女进行这项研究。 目的是为寻找适合这种健康风险的预防和治疗方案做出贡献。 ...

    bobo-ui-website

    【bobo-ui-website】项目概述 `bobo-ui-website`是一个专注于用户界面设计的网站项目,其核心目标是提供一套美观、易用且功能丰富的前端UI组件库。这个项目可能包含了HTML、CSS、JavaScript以及其他相关的前端技术...

    noobie-repo

    Noobie回购 套餐变更 本地和dconf已移到xfce的各个软件包中。 gimp,conky和root已移到了自己的程序包中。 配套 bobo-wallpapers-git bobo-root-git bobo-variety-git bobo-plank-git ... bobo-lightdm-g

Global site tag (gtag.js) - Google Analytics