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
细节需要修改,暂时结束。
分享到:
相关推荐
《Lucene Facet 使用Bobo-Browse实现详解》 在信息检索领域,Lucene作为一款强大的全文搜索引擎,被广泛应用于各种复杂的数据检索场景。然而,随着数据量的日益增大,如何有效地对搜索结果进行分类和统计,即所谓的...
基于bobo-browse参照path统计方式实现类扩展自定义自己的实现类,可实现分类编码每4位为一个级别:如:1000000100301001 即可统计出1000、10000001、100000010030、1000000100301001,也可选择从第几级开始最多统计...
bobo-chat-client可能使用SSL/TLS协议加密通信,防止中间人攻击,同时可能还有账户验证和权限管理机制,以保护用户隐私。 9. **文件存储**: 虽然压缩包内没有明确提及,但聊天记录通常会被存储在本地,方便用户...
详细见 见https://gitee.com/BoBojc/bobo-chat-server
【标题】"BOBO--影楼专用版PHOTOSHOP全自动平台动作.rar"指的是一个针对影楼行业的Photoshop自动化操作集合。这个压缩包文件包含了多种专业级别的动作(Actions),是Photoshop用户,尤其是影楼后期制作人员提升工作...
"Python库 | bobo-2.0.0.tar.gz" 是一个针对Python编程语言的库,版本号为2.0.0,它被封装在tar.gz格式的压缩包中。这个压缩包的名字是“bobo-2.0.0”,这通常意味着库的名称为“bobo”。tar.gz是一种常见的打包和...
【标题】"bobo-chat-client lunix" 是一个专为Linux操作系统设计的Bobo聊天客户端。这个客户端基于Java Socket技术,允许用户通过TCP/IP协议在本地网络或互联网上进行实时通信。Bobo Chat Client旨在提供一个简洁、...
作者打算描述Bobo-Dioulasso顶尖运动员的静息心电图特征。 这项描述性横向研究于2015年8月至2016年2月在Bobo-Dioulasso的CHU Sanou Souro心脏病学部门进行。 该研究对年龄在17至35岁之间的顶级运动员进行了抽样调查...
我们报告了在西布基纳法索(西非)的Bobo-Dioulasso CHU-SS进行的1022上消化道内窥镜检查的结果。 这项研究的目的是记录在CHUSS的高内镜检查中发现的适应症和病变。 患者与方法:这是一项横断面研究,旨在描述2015...
bobo-2.4.0
这项研究的目的是描述Bobo-Dioulasso市(布基纳法索)的学生饮食。 方法:这是一项描述性横断面研究,于2016年3月至4月进行,涉及Bobo-Dioulasso市公立和私立学校的1、4、7年级学生。 饮食调查方法可以提醒您过去24...
这项研究的目的是确定布基纳法索Bobo-Dioulasso的性活跃妇女群体中HPV-HR基因型的流行程度。 方法:这项研究于2017年9月至2017年6月在Bobo-Dioulasso的Souro Sanou教学医院进行。在同意后,总共有234名处于妇科和性...
方法:这项横断面研究于2016年3月至4月在Bobo-Dioulasso市的公立和私立学校的1、4、7年级学生中进行。 营养调查方法包括提醒人们过去24小时与食物消费频率问卷相关的信息。 过量摄入甜饮料的定义是每天消耗超过3种...
该研究的目的是了解Bobo-Dioulasso市妇女人口中的DA现象。 方法:这是一项描述性横断面研究,于2016年4月16日至4月30日进行,包括437名年龄在13至55岁之间的女性。 实现了多阶段随机抽样。卡方检验用于比较显着阈值...
音乐
发病率和各种偏见关系到不同的参与者,尤其是在Bobo-Dioulasso到布基纳法索的腰果行业。 我们认为适合在工厂的腰果脱壳站中处理腰果的妇女进行这项研究。 目的是为寻找适合这种健康风险的预防和治疗方案做出贡献。 ...
【bobo-ui-website】项目概述 `bobo-ui-website`是一个专注于用户界面设计的网站项目,其核心目标是提供一套美观、易用且功能丰富的前端UI组件库。这个项目可能包含了HTML、CSS、JavaScript以及其他相关的前端技术...
Noobie回购 套餐变更 本地和dconf已移到xfce的各个软件包中。 gimp,conky和root已移到了自己的程序包中。 配套 bobo-wallpapers-git bobo-root-git bobo-variety-git bobo-plank-git ... bobo-lightdm-g