`
HelloTommy
  • 浏览: 98662 次
  • 性别: Icon_minigender_1
  • 来自: 慈溪
社区版块
存档分类
最新评论

lucene 学习实战系列(高亮+分页)

阅读更多

       对查询内容分页,那是必须的。当然最好是能够对所查询的关键字进行高亮显示。

       对于高亮有直接的api,但是对于分页。虽然没有直接的方法,但也有类似于hibernate分页的方法,但我们可以用

IndexSearcher提供的doc方法,直接通过数组下标来获取该组对象集合。

       此例在myeclipse8.5++tomcat6+jdk1.6+lucene3.0.2+struts2.2.1+freemarker-2.3.16下测试通过

      

 

         效果图:

       

 

        

            做的很简单,只是为了展现高亮+分页的效果

            这个分页效果是我第一篇博客的仿QQ的效果。嘿嘿。推销一下。

            http://hellotommy.iteye.com/blog/785242

          一:高亮部分代码

           

SimpleHTMLFormatter simpleHtmlFormatter = new SimpleHTMLFormatter("<b><font color='red'>","</font></b>");	//高亮样式,粗体+red
Highlighter highlighter = new Highlighter(simpleHtmlFormatter,new QueryScorer(query));	//对查询出来的query进行高亮设置
highlighter.setTextFragmenter(new SimpleFragmenter(100));	//关键字两旁字数
TokenStream tokenStream1 = analyzer.tokenStream("newsTitle",new StringReader(resultDoc.get("newsTitle")));	//TokenStream用来分析文字流
TokenStream tokenStream2 = analyzer.tokenStream("newsContent",new StringReader(resultDoc.get("newsContent")));
String bestFragment1 = highlighter.getBestFragment(tokenStream1, resultDoc.get("newsTitle"));		//匹配样式
String bestFragment2 = highlighter.getBestFragment(tokenStream2, resultDoc.get("newsContent"));

 

           二:分页部分

          

List<News> newsList=new ArrayList<News>();
for (int i = firstResult; i < firstResult+maxResult ; i++){   //按照分页的序号遍历。
	News news=new News();
            	Document resultDoc = isearcher.doc(docs[i].doc);
	news.setNewsId(resultDoc.get("newsId"));
	.....newsList.add(news);		//讲对象加入集合中
}   

           大致就是以上这样子。

           分页采用lucene官方推荐的,每次都对索引进行检索,虽然效率并不高,但操作相对简单很多。就跟普通分页

一样。

  • 大小: 44.8 KB
  • 大小: 51.4 KB
分享到:
评论

相关推荐

    Lucene实战第二版

    《Lucene实战第二版》是一本深入探讨Lucene搜索引擎库的专业书籍,旨在帮助读者掌握Lucene的核心技术并将其应用于实际项目中。这本书分为三个主要部分,涵盖了从基础到高级的各个方面,结合实例进行讲解,是学习和...

    lucene实战

    《Lucene实战》这本书是关于Apache Lucene的深入实践指南,涵盖了Lucene的核心功能和实际应用。Lucene是一个开源的全文检索库,被广泛用于构建高效、强大的搜索引擎。以下是书中的主要知识点: **Part 1 CORE ...

    Lucene in Action 2nd

    在书中,他们会分享自己在开发过程中遇到的问题及其解决方案,这不仅有助于读者更好地理解 Lucene 的设计思路,也能学到一些实战技巧。 - **问题解决案例**:通过具体实例展示如何诊断和解决 Lucene 应用中出现的...

    lucene5.5demo

    《深入理解Lucene 5.5:基于Spring MVC与MySQL的实战示例》 Lucene是一个高性能、全文本检索库,被广泛应用于各种搜索引擎的开发。在这个“lucene5.5demo”项目中,开发者利用Lucene 5.5版本,结合Spring MVC框架和...

    Lucene in action配套源代码

    这本书的配套源代码包含了大量的示例和实战练习,帮助读者更好地理解和应用Lucene的核心概念和技术。 Lucene是一个开放源码的全文检索库,由Java编写,为开发人员提供了高级文本检索功能的基础架构。它并不提供一个...

    Lucene全文检索框架+Solr+ElasticSearch搜索引擎(Java高级必备.ES)

    7、通过Solr后台管理界面对索引进行CRUD高亮过滤排序分页 8、通过Solrj实现索引的添加更新 9、通过Solrj实现索引的删除 10、索引的检索_过滤_高亮等操作 11、项目实战应用 12、Solr知识点总结 1、熟练掌握...

    lucene2.2.0

    Apache Lucene 是一个高性能、全文本搜索引擎库,而Lucene 2.2.0则是这一系列版本中的一个重要里程碑。作为一个开源项目,Lucene 提供了强大的文本分析、索引构建以及搜索功能,使得开发者能够快速集成全文检索功能...

    lucene搜索引擎培训资料

    **五、尚学堂全文检索系统(Lucene)实战** 这个部分可能包含一个尚学堂制作的全文检索系统案例,通过实际项目展示了Lucene在构建搜索引擎时的应用,可能涵盖如何整合数据库、处理大量数据、优化搜索性能等方面的...

    官方最新完整版lucene-6.6.0.zip

    《Apache Lucene 6.6.0:全文检索与索引库详解》 Apache Lucene 是一个开源的全文检索库,由Java编写,为开发者提供了强大的文本搜索功能。6.6.0 版本作为官方的最新完整版,集成了众多优化和改进,旨在提供更加...

    Java搜索工具——Lucene实例总结(一)

    - **分页搜索**:通过设置TopDocs的数量限制来实现结果的分页展示。 - **高亮显示**:突出显示搜索关键词在结果文档中的位置。 6. **实战应用** 通过实例,我们可以创建一个简单的索引器,将文本文件或数据库...

    Lucene.Net_2_4_0.rar

    5. **结果展示**:获取查询结果后,通常需要对结果进行分页、高亮显示关键词等操作,提供友好的用户界面。 **五、应用场景** Lucene.Net 广泛应用于各类需要全文检索功能的系统,如: 1. **企业内部搜索引擎**:...

    Lucene搜索引擎开发权威经典11-14.rar

    这四章内容覆盖了Lucene搜索引擎开发的多个核心方面,无论是对初学者还是有经验的开发者,都能从中获取到宝贵的实战经验和理论知识。通过深入学习,读者可以具备独立构建和优化搜索引擎的能力,满足各种实际应用场景...

    java进阶Solr从基础到实战

    Solr它是一种开放源码的、基于 Lucene 的搜索服务器,可以高效的完成全文检索的功能。在本套课程中,我们将全面的讲解Solr,从Solr基础到Solr高级,再到项目实战,基本上涵盖了Solr中所有的知识点。 主讲内容 章节一...

    仿京东商城项目

    5. **搜索组件**:Solr提供了一系列搜索组件,如QueryParser、Highlighter(高亮显示)、FacetComponent(分面搜索)等,这些组件协同工作以生成搜索结果。 在项目"solrjd"中,我们可以看到以下主要部分: 1. **...

    hibernate-search-4.3.0.zip

    3. **分页与排序**:使用Query的setFirstResult和setMaxResults进行分页,使用Sort进行排序。 4. **高亮显示**:使用Highlighter接口可以实现搜索结果中的关键词高亮。 五、实战示例 以下是一个简单的使用...

    solr项目和相关资源.rar

    Solr是Apache Lucene项目下的一个企业级搜索服务器,它提供了全文检索、命中高亮、 faceted search(分面搜索)以及与多种数据源集成的能力。这个“solr项目和相关资源.rar”压缩包显然是针对Solr初学者或开发者准备...

    solr实现的搜索引擎

    结合《解密搜索引擎技术实战》第八章的代码,你可以逐步学习并实践上述知识点,理解Solr搜索引擎的实现原理,从而掌握构建高效搜索引擎的技术。记得在实际操作中不断调试和优化,以适应不同的业务场景和性能需求。

    dyt-es-jd.zip

    5. 分页与聚合:利用 Elasticsearch 的分页和聚合功能,实现分页展示和统计分析。 四、商城产品搜索 1. 商品索引:每个商品作为一条记录存储在 ES 中,包含商品ID、名称、描述、价格、库存等信息。 2. 多维度筛选:...

    SearchFrame:开发搜索引擎的框架

    6. **结果展示**:将搜索结果处理并展示给用户,可能包括排序、分页、高亮等。 7. **优化与维护**:监控系统性能,进行索引优化,如定期重建索引,调整搜索参数等。 ### 四、实战案例 以电商网站为例,`...

Global site tag (gtag.js) - Google Analytics