`
ttitfly
  • 浏览: 623981 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

lucene高亮demo

阅读更多
java 代码
  1. package com.feedsky.lucene;   
  2.   
  3. import java.io.StringReader;   
  4.   
  5. import org.apache.lucene.analysis.Analyzer;   
  6. import org.apache.lucene.analysis.TokenStream;   
  7. import org.apache.lucene.document.Document;   
  8. import org.apache.lucene.document.Field;   
  9. import org.apache.lucene.index.IndexWriter;   
  10. import org.apache.lucene.queryParser.QueryParser;   
  11. import org.apache.lucene.search.Hits;   
  12. import org.apache.lucene.search.IndexSearcher;   
  13. import org.apache.lucene.search.Query;   
  14. import org.apache.lucene.search.highlight.Highlighter;   
  15. import org.apache.lucene.search.highlight.QueryScorer;   
  16. import org.apache.lucene.search.highlight.SimpleFragmenter;   
  17. import org.apache.lucene.search.highlight.SimpleHTMLFormatter;   
  18. import org.apache.lucene.store.Directory;   
  19. import org.apache.lucene.store.RAMDirectory;   
  20.   
  21.   
  22.   
  23. public class HighLighterTest   
  24. {   
  25.   
  26.     public static void main(String[] args)   
  27.     {   
  28.         String fieldName = "text";   
  29.         String text = "《越狱3》播出时间再次延期 急煞中国“狱友” 巨型变形金刚惊现北京 《龙珠Z》绝招威力排行 《不能说的秘密》清纯版 迅雷宽频合作发行 《越狱动画版》"//检索内容   
  30.   
  31.         //采用猎兔分词   
  32.         Analyzer analyzer = new CnAnalyzer();   
  33.   
  34.         Directory directory = new RAMDirectory();   
  35.   
  36.         try  
  37.         {   
  38.             //索引   
  39.             IndexWriter iwriter = new IndexWriter(directory, analyzer, true);   
  40.             iwriter.setMaxFieldLength(25000);   
  41.             Document doc = new Document();   
  42.             doc.add(new Field(fieldName, text, Field.Store.YES,   
  43.                     Field.Index.TOKENIZED,   
  44.                     Field.TermVector.WITH_POSITIONS_OFFSETS));   
  45.             iwriter.addDocument(doc);   
  46.             iwriter.close();   
  47.   
  48.             IndexSearcher isearcher = new IndexSearcher(directory);   
  49.                
  50.             QueryParser queryParse = new QueryParser(fieldName, analyzer);   
  51.             Query query = queryParse.parse("越狱");   
  52.             Hits hits = isearcher.search(query);   
  53.             for (int i = 0; i < hits.length(); i++) {   
  54.                 Document docTemp = hits.doc(i);   
  55.                 String value = docTemp.get(fieldName);   
  56.         //      对要高亮显示的字段格式化,这里只是加红色显示和加粗   
  57.                 SimpleHTMLFormatter sHtmlF = new SimpleHTMLFormatter("<b><font color='red'>""</font></b>");   
  58.                 Highlighter highlighter = new Highlighter(sHtmlF,new QueryScorer(query));   
  59.                 highlighter.setTextFragmenter(new SimpleFragmenter(10));   
  60.                    
  61.                 if (value != null) {   
  62.                     TokenStream tokenStream = analyzer.tokenStream(fieldName,new StringReader(value));   
  63.                     String str = highlighter.getBestFragment(tokenStream, value);   
  64.                        
  65.                     System.out.println(str);   
  66.                 }   
  67.            }   
  68.     
  69.             isearcher.close();   
  70.             directory.close();   
  71.         }   
  72.         catch (Exception e)   
  73.         {   
  74.             e.printStackTrace();   
  75.         }   
  76.     }   
  77.   
  78. }   

 

 

运行结果为:

《<b><font color='red'>越狱</font></b>3》播出时间

分享到:
评论

相关推荐

    SpringBoot+Lucene搜索结果高亮显示Demo

    在这个SpringBoot+Lucene的Demo中,我们将深入探讨如何在Spring Boot框架下集成Lucene,并实现搜索结果的高亮显示。 首先,让我们了解Spring Boot。Spring Boot是由Pivotal团队提供的全新框架,其设计目标是简化...

    lucene_demo例子

    在"lucene_demo"这个压缩包中,很可能包含了一些示例代码或者项目,用于演示如何使用Lucene进行实际的文本搜索开发。这些示例通常会涵盖以下几个关键知识点: 1. **安装与配置**:Lucene的下载、构建环境的搭建,...

    luceneDemo(完整代码)

    "luceneDemo(完整代码)"是一个实践项目,旨在帮助开发者深入理解Lucene的基础类运用、高亮器实现以及相关度排序等核心概念。 首先,我们来看看基础类的运用。在Lucene中,IndexWriter是创建和更新索引的主要类,...

    Lucene初探,一个初级的LuceneDemo

    **Lucene初探:一个初级的LuceneDemo** 在IT领域,搜索引擎技术是不可或缺的一部分,尤其是在大数据时代,高效的信息检索显得尤为重要。Apache Lucene就是这样一款强大的开源全文搜索引擎库,它为开发者提供了构建...

    ssh集成Lucene4.7demo

    总的来说,这个“ssh集成Lucene4.7demo”项目提供了一个完整的示例,展示了如何在SSH框架下整合Lucene进行全文搜索,以及如何利用IKAnalyzer处理中文分词,同时实现搜索结果的高亮显示。对于初学者或希望深入理解...

    lucene3.5全文检索案例lucene+demo

    本篇文章将围绕“lucene3.5全文检索案例lucene+demo”,详细讲解Lucene 3.5的核心概念、关键功能以及如何通过实例进行操作。 一、Lucene 3.5核心概念 1. 文档(Document):Lucene中的最小处理单元,相当于数据库...

    luceneDemo

    **Lucene 概述** Lucene 是一个高性能、全文本搜索库...实际的 "luceneDemo" 可能包含更丰富的功能,例如支持多字段查询、高亮显示搜索结果、分页显示等。学习和理解 Lucene,可以帮助开发者构建强大的全文检索系统。

    lucene 4.7.2 Demo

    《Lucene 4.7.2 Demo:Java全文搜索引擎的核心技术探索》 Lucene,作为Apache软件基金会的一个开源项目,是Java平台上的一个全文搜索引擎库。它的主要功能是提供高效、可扩展的文本检索和分析能力。在4.7.2这个版本...

    lucene Demo(paoding)

    【Lucene Demo (Paoding)】是一个展示如何在Java环境中使用Apache Lucene库进行全文搜索引擎构建的示例项目。Lucene是开源的全文检索引擎库,它提供了强大的文本搜索功能,而Paoding则是针对中文处理的插件,优化了...

    全文搜索技术Lucene Demo

    本篇文章将深入探讨Lucene的核心概念、工作原理以及如何通过一个Demo来实践它的使用。 Lucene的主要功能包括索引构建、查询解析、评分和结果排序。索引构建是将原始文本数据转换成一种高效的数据结构,以便于快速...

    lucene5的一个简单Demo

    6. **高亮显示(Highlighting)**:为了方便用户,Lucene 还可以高亮显示搜索结果中匹配的关键词。 在这个 Lucene 5 的简单 Demo 中,开发者可能会展示如何执行以下操作: 1. **创建索引**:创建一个 `Directory` ...

    lucene5.5demo

    在这个“lucene5.5demo”项目中,开发者利用Lucene 5.5版本,结合Spring MVC框架和MySQL数据库,构建了一个功能完备的文本搜索系统,涵盖了索引的创建、更新、删除和查询等基本操作,并实现了高亮显示、分页以及...

    jsuop+lucene demo

    在"jsuop+lucene demo"项目中,这两个工具被结合使用,以实现一个简单的新闻爬虫系统,并在此基础上构建了全文索引查询功能,便于用户快速、准确地查找所需新闻内容。 **一、新闻爬虫** 1. **网络爬虫基础**:网络...

    Lucene实战Demo

    《Lucene实战Demo》 在IT领域,搜索引擎技术是不可或缺的一部分,而Apache Lucene作为一款高性能、全文检索库,被广泛应用于各种系统中。本文将深入探讨如何利用Lucene进行实战开发,通过分析提供的标签“源码”和...

    lucene4.0 demo

    本教程通过一个简单的demo,将深入讲解如何利用Lucene 4.0创建索引、删除索引以及进行有效搜索。以下是详细的知识点解析: 1. **Lucene简介** Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发。它提供...

    Lucene.Net.DemoLib.dll

    《深入解析Lucene.Net.DemoLib.dll:一个强大的全文搜索引擎示例库》 在IT行业中,搜索引擎技术扮演着至关重要的角色,特别是在大数据处理和信息检索领域。Lucene.NET是Apache软件基金会开发的一个开源全文搜索库,...

    Lucene Demo组件

    在“Lucene Demo 组件”中,我们主要会接触到以下几个关键知识点: 1. **索引的创建(Indexing)** 创建索引是 Lucene 的首要步骤。它将文本数据转换为倒排索引(Inverted Index),使得快速查找匹配特定关键词的...

    lucene增删改查小demo

    掌握这些基本操作后,你可以进一步探索 Lucene 的高级特性,如分面搜索、自定义分析器、命中高亮等,以满足更复杂的搜索需求。同时,需要注意的是,实际应用中应考虑并发控制、性能优化以及错误处理等方面的问题。

    整合Lucene搜索用户新闻项目实例,支持搜索关键词高亮

    "luceneDemo"可能是项目源代码,包含整合Lucene的具体实现,如创建索引、执行搜索以及关键词高亮等逻辑。 总之,这个项目实例涵盖了从数据库获取新闻数据,使用Lucene进行文本处理、索引构建、搜索执行,到最后的...

Global site tag (gtag.js) - Google Analytics