<clk>OSPod.Forum使用Lucene作为搜索引擎核心,对于Lucene的分页,OSPod对Hits进行了二次封装,取出所需结果集后,关闭Hits,极大提高搜索效率。参考代码如下:</clk>
/**
*索引分页对象
*/
privatePaginationpage;
/**
*命中结果数据数
*/
privateinthitsLength=0;
/**
*当前分页的命中结果集
*/
privateListresults;
/**
*用于分页的最大结果数
*/
privateinttotal=0;
/**
*构造方法,创建并初始化索引结果集对象
*@paramhits查询命中结果
*@param<clk>start结果集提取其实位置</clk>
*@paramcount当前提取数
*@paramtotalLimit用于分页的最大结果集数,限制提取的最大结果数有利于提供系统查询性能
*/
publicIndexResultSet(Hitshits,intstart,intcount,inttotalLimit){
results=newArrayList();
page=PaginationUtils.create();
hitsLength=hits.length();
if(hitsLength>totalLimit){
total=totalLimit;
}else{
total=hitsLength;
}
intpageSize=count;
if(start+count>total){
count=total-start;
}
page.init(start,count,total,pageSize);
intend=start+count;
try{
Documentdoc;
for(inti=start;i<end;i++){
doc=hits.doc(i);
Iteratoriter=doc.getFields().iterator();
EMapdata=newEMap();
Stringname,value,lvalue;
while(iter.hasNext()){
Fieldf=(Field)iter.next();
name=f.name();
value=doc.get(name);
data.setValue(name,value);
}
data.setValue("score__",hits.score(i));
data.setValue("docid__",hits.id(i));
results.add(data);
}
}catch(IOExceptionex){
thrownewIndexException("索引结果集获取出错",ex);
}
}
分享到:
相关推荐
而第二种思路就是,我直接从搜索到的结果集种显示前十条给第一页显示,第二页的时候,我在查询一次,给出10-20条数据给第二页显示,我每次翻页都要重新查询 第三种思路就变成了 我第一页仅需要10条数据,但是我一次读出来...
对lucene的封装对lucene的封装 对lucene的封装 对lucene的封装
基于java的lucene 5.2的封装,主要包括lucene的各种查询方法、建索引方法的实现,为使用lucene开发者提供便利,而不需要过多的lucene知识即可使用,具体使用方法请到github上download,里面有完整的demo。...
NULL 博文链接:https://sunhao-java.iteye.com/blog/1874396
lucene的查询语法事例.
lucene 做索引查询流程,来自《lucene in action》
2.MUST和MUST_NOT:表示查询结果中不能包含MUST_NOT所对应得查询子句的检索结果。 3.MUST_NOT和MUST_NOT:无意义,检索无结果。 4.SHOULD与MUST、SHOULD与MUST_NOT: SHOULD与MUST连用时,无意义,结果为MUST子句...
Lucene3.0之查询处理(1):原理和查询类型 各种Query对象详解
基于SpringBoot编写的一个Lucene测试Demo把匹配到的结果高亮摘要显示在前端jsp上
一步一步跟我学习lucene是对近期做lucene索引的总结,大家有问题的话联系本人如蒙加入,不胜感激,大家共同探讨,本人争取每日一博,希望大家持续关注,会带给大家惊喜的
lucene facet查询示例,区间查询多dim查询,key-field-value模型了解
Lucene创建索引,查询索引的简单使用。
lucene表达式查询示例和表达式语法详解
Lucene实战(第二版)源代码
lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例
lucene in action 第二版中文版,
lucene in action 第二版(pdf),内为英文彩色原版。
Lucene Query Tool (lqt) 是一个命令行工具用来执行 Lucene 查询并对结果进行格式化输出。 使用方法: $ ./lqt usage: LuceneQueryTool [options] --analyzer <arg> for query, (KeywordAnalyzer | ...
lucene,kdkafdsfjadsfajsdl;faadkfsdfasdkfaksdkfadskfksdkf
为了快速查询,加快查询速度,减少与数据库交互,经常需要用到lucene实现创建索引和查询