`
guyinglong
  • 浏览: 73904 次
  • 性别: Icon_minigender_1
  • 来自: 江西
社区版块
存档分类
最新评论

关键词加亮

    博客分类:
  • java
阅读更多
lucene-highlighter-2.3.1.jar

package demo;

import jeasy.analysis.MMAnalyzer;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.TermPositionVector;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.highlight.Highlighter;
import org.apache.lucene.search.highlight.QueryScorer;
import org.apache.lucene.search.highlight.TokenSources;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.RAMDirectory;

public class Demo {

    public static void main(String[] args) {
        String fieldName = "text";
        String text = "据路透社报道,印度尼西亚社会事务部一官员星期二(29日)表示,"
                + "日惹市附近当地时间27日晨5时53分发生的里氏6.2级地震已经造成至少5427人死亡,"
                + "20000余人受伤,近20万人无家可归。"; // 检索内容

        // 采用正向最大匹配的中文分词算法
        Analyzer analyzer = new MMAnalyzer();

        Directory directory = new RAMDirectory();
        // Directory directory = FSDirectory.getDirectory("/tmp/testindex",
        // true);

        try {
            IndexWriter iwriter = new IndexWriter(directory, analyzer, true);
            iwriter.setMaxFieldLength(25000);
            Document doc = new Document();
            doc.add(new Field(fieldName, text, Field.Store.YES,
                    Field.Index.TOKENIZED,
                    Field.TermVector.WITH_POSITIONS_OFFSETS));
            iwriter.addDocument(doc);
            iwriter.close();

            IndexSearcher isearcher = new IndexSearcher(directory);
            QueryParser parser = new QueryParser(fieldName, analyzer);
            Query query = parser.parse("印度尼西亚 6.2级地震");// 检索词
            Hits hits = isearcher.search(query);
            System.out.println("命中:" + hits.length());

            Highlighter highlighter = new Highlighter(new QueryScorer(query));
            for (int i = 0; i < hits.length(); i++) {
                text = hits.doc(i).get(fieldName);
                TermPositionVector tpv = (TermPositionVector) IndexReader.open(
                        directory).getTermFreqVector(hits.id(i), fieldName);
                TokenStream tokenStream = TokenSources.getTokenStream(tpv);
                String result = highlighter.getBestFragments(tokenStream, text,
                        3, "...");
                System.out.println("内容:" + result);
            }

            isearcher.close();
            directory.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}
分享到:
评论

相关推荐

    php搜索 关键字加亮 php搜索 关键字加亮

    首先,理解关键词加亮的基本概念。在网页中,当用户进行搜索操作后,返回的结果中,含有搜索关键词的部分会被特别显示,通常是通过改变字体颜色、背景色或者添加边框等方式来突出。这样,用户可以快速定位到他们关心...

    php站内搜索、关键字加亮显示

    关键词加亮显示则能进一步提升用户体验,通过高亮显示搜索结果中的关键词,使用户一眼就能看到与他们查询相关的部分。本教程将深入讲解如何在PHP中实现这两项功能。 首先,我们需要理解站内搜索的基本原理。站内...

    editminus.exe 5.0版本 自由软件 推荐

    这款文本编辑器不仅具备基本的文本处理能力,更在语法加亮、关键词加亮等方面展现了其专业性和实用性,成为了程序员和文字工作者的得力助手。 首先,editminus.exe的核心优势在于它的语法加亮功能。这对于编写代码...

    易语言编辑框关键字加亮

    为了实现关键字加亮,需要遍历文本,找到关键词并进行标记。 4. **模块_超级编辑框**:在易语言中,模块是一种可重用的代码单元,可以封装特定功能。"模块_超级编辑框"可能是一个扩展了标准编辑框功能的自定义控件...

    关键字加亮

    如果用户输入的是"关键字加亮",那么"关键字"和"加亮"就是我们要提取的关键词。这个过程通常涉及字符串操作,如空格分隔、大小写转换(根据需求可能需要忽略大小写)以及去除停用词(如“的”、“是”等常见但对搜索...

    php站内搜索关键词变亮的实现方法_.docx

    本文将详细介绍如何在 PHP 中实现站内搜索关键词变亮的机制,主要涉及字符串处理函数和数据库操作。 首先,我们需要建立一个数据库来存储搜索关键词。这里创建了一个名为 `searchKey` 的数据库,并在其中创建一个表...

    javascript关键字加亮加连接

    我想在页面里把想要的关键词加亮凸出(用颜色区分出来)显示,这样让客户一眼能看到重的东西,然后在加亮的关键词上可以加上超连接.请问高手们怎么实现宋的功能.就像搜索引擎的那种..搜索关键词的时候就显示红色的.

    php站内搜索关键词变亮的实现方法

    在PHP中实现站内搜索关键词变亮的效果,主要涉及到字符串处理和数据库操作。这个功能能够提升用户在浏览搜索结果时的体验,使他们更容易找到匹配的关键词。以下是如何使用PHP来实现这一功能的详细步骤: 1. **创建...

    易语言易代码网页加亮

    【易语言易代码网页加亮】是一个针对易语言编程环境的源码项目,旨在实现对网页中的代码进行高亮显示的功能。在编程领域,代码高亮是提高代码可读性和编辑体验的重要手段,它通过使用不同的颜色和样式来区分代码中的...

    exBlog v1.3.0 Build 0423

     + [修复] 完美的搜索关键词加亮   + [修复] 文章隐藏   + [修复] RSS2.0的修复   + [修复] 某些空间的HTTP-405错误   + [增加] 多语言支持搞定!HOT!   + [增加] 伪静态地址搞定!HOT!   ...

    用JS让文章内容指定的关键字加亮

    用JS让文章内容指定的关键字加亮 是这样的.. 现在有这些关键字:美容,生活,购物 当在文章里头出现这些关键字,就把它加亮显示.. 文章是生成静态页面的,而这些关键字是能随时更新的,所以我想用JS来实现… 不知道怎样来...

    加亮搜索关键字,摘要出关键字的上下文

    标题“加亮搜索关键字,摘要出关键字的上下文”指的是在文本处理中,为了突出显示用户搜索的关键字,我们通常会在展示结果时将这些关键字进行特殊处理,如改变颜色、加粗或者用背景色标出,以便用户快速定位到他们...

    支持屏幕加亮的论坛帖图工具Delphi版..rar

    标题中的“支持屏幕加亮的论坛帖图工具Delphi版”指的是一个使用Delphi编程语言开发的工具,该工具主要用于在论坛上发布带有高亮显示功能的截图。Delphi是Borland公司(现Embarcadero Technologies)推出的一种基于...

    PHP100视频教程41:PHP站内搜索、多关键字、加亮显示.rar

    5. **结果加亮显示**:为了让用户更容易找到匹配的关键字,可以使用正则表达式替换方法,如`preg_replace()`,将匹配到的关键字用特定样式(如背景色)包裹,达到加亮效果。 6. **错误处理与输入验证**:确保用户的...

    一种基于亮度直方图的自动曝光控制方法.pdf

    关键词中提到的图像信号处理(Image Signal Processing,简称ISP)是数字图像处理的重要分支,它关注的是数字图像在生成、传输和展示过程中遇到的问题和挑战。自动曝光控制是图像信号处理中的一项核心技术,它确保在...

    联想E40笔记本 屏幕显示加减声音亮度等热键 驱动

    标签“联想E40笔记本 屏幕显示加减声音亮度等热键 e40驱动”是对主题的关键词概括,它突出了驱动程序是专为解决联想E40笔记本上这些特定热键问题而设计的。 压缩包内的文件名为“HOTKEY”,这很可能是驱动程序的...

    PHP实现多关键字加亮功能

    在PHP编程中,实现多关键字加亮功能是一个常见的需求,特别是在搜索结果展示时,通过高亮关键词可以帮助用户更快地定位到他们关心的信息。本篇文章将详细介绍如何使用PHP来完成这一功能。 首先,我们需要理解基本的...

    jQuery 实现搜索查找目标字符加红高亮功能.rar

    在给定的“jQuery 实现搜索查找目标字符加红高亮功能.rar”压缩包中,包含了一个实现关键词高亮显示的 jQuery 实例。这个功能对于提升用户在网页上的搜索体验具有重要意义,因为用户可以快速地识别出他们正在寻找的...

    易语言编辑框关键字加亮源码-易语言

    在这个“易语言编辑框关键字加亮源码”中,我们主要会探讨易语言如何实现代码编辑器中的关键字高亮显示功能,这对于提升代码的可读性和美观度具有重要意义。 在编程环境中,关键字高亮是常见的功能,它通过改变颜色...

Global site tag (gtag.js) - Google Analytics