今天在搜索结果高亮时候碰到了一个小问题,是“lucene高亮显示时,String index out of range异常”,百思不得其解,以前并没有出现过,后来google了下,终于觅得解决办法,哈哈。
搜了下javaeye,以前也有同学碰到和我一样的问题,在论坛上发问的,可是没有一个解答的,可能因为他没有贴代码的原因吧。
这个旧帖子是http://www.iteye.com/topic/89511
whk1007 写道
我用的是lucene-highlighter-2.0.0.jar,在高亮显示时,总是报错String index out of range: 16.发现好象是在方法highlighter.getBestFragment()处异常,请问是什么原因啊?
我今天出现的问题也和他一样,出现问题的代码是:
TokenStream tokenStream = TokenSources.getTokenStream((TermPositionVector) reader.getTermFreqVector(i, "CONTENT"));
问题就出现在上面这段代码中的i上,因为是for循环,所以我当时认为这个i就代表了docid,其实不然,在取得hits的情况下,我们通过hits.doc(i)来取得文档,通过hits.id(i)来取得文档号docid,所以上段代码中的变量i改为hits.id(i),如下
TokenStream tokenStream = TokenSources.getTokenStream((TermPositionVector) reader.getTermFreqVector(hits.id(i), "CONTENT"));
这样就不会出现java.lang.StringIndexOutOfBoundsException: String index out of range异常问题了
给我解决问题提示的文章是http://www.5yiso.cn/2008/02/12152.html 《Lucene 高亮 --不就行二次分词(zhuan)》
教训:这是不仔细看程序说明的后果啊,以后要遇到问题要仔细看lucene源代码和说明的!
分享到:
相关推荐
在使用Lucene进行中文分词时,原始的方法是在运行时对每篇文档进行多次分词操作以实现关键词的高亮显示,这种方法虽然能够确保高亮显示的准确性,但会显著降低系统的响应速度,特别是在处理大量文档或复杂查询时,...
Lucene的高亮显示是指在搜索结果中,对匹配查询关键词的部分进行突出显示,通常用不同颜色或者加粗等方式实现。这不仅能够帮助用户迅速识别搜索结果的相关性,还能提高搜索结果的可读性和吸引力。 #### 二、高亮...
**SpringBoot+Lucene搜索结果高亮显示** 在现代Web应用程序中,强大的全文搜索引擎功能是不可或缺的,而Apache Lucene正是这样一个高效的、可扩展的开源全文检索库。在这个SpringBoot+Lucene的Demo中,我们将深入...
在实际应用中,你可能需要结合这两者,即根据多字段查询获取结果,然后对结果显示高亮。这需要对Lucene的API有深入的理解,包括如何构建和执行查询,如何获取文档字段的原始文本,以及如何使用Highlighter。 在提供...
《Lucene+HighLighter高亮显示实例解析》 在信息技术领域,搜索引擎的构建与优化是至关重要的一环,其中,如何有效地对搜索结果进行高亮显示,以突出关键信息,是提升用户体验的关键因素之一。本篇文章将深入探讨...
本文将详细介绍如何使用Java和Lucene来实现HTML文本的高亮显示,以便用户在搜索结果中能快速识别关键词。提供的`HighLighterUtils.java`文件应该包含了实现这一功能的核心代码。 首先,我们需要理解高亮显示的基本...
lucene3.5高亮
本压缩包中的代码着重展示了如何使用 Lucene 进行分页搜索和结果高亮显示。下面将详细解释这两个关键知识点。 **一、Lucene 分页搜索** 在大型数据集上进行搜索时,一次性返回所有结果并不实际,因此分页搜索显得...
lucene-highlighter-3.5.0.jar lucene高亮包
标题中的“lucene.net以及高亮的DLL文件”指的是在.NET环境中使用Lucene搜索引擎库时,涉及到了文本高亮显示的DLL组件。Lucene.Net是一个开源的全文检索库,它是Apache Lucene项目针对.NET Framework的移植版本,为...
下面我们将深入探讨如何在Android环境中利用Lucene来创建一个高效、功能丰富的全文检索系统,并了解如何高亮显示搜索结果中的关键字。 首先,我们要理解全文检索的基本原理。全文检索是指通过建立倒排索引来快速...
这个标题提到的"java实现高亮显示的jar包,lucene用的jar包"是指利用Lucene库进行文本搜索时,对搜索结果进行高亮显示的相关功能。下面我们将深入探讨Lucene的核心组件、高亮显示的实现原理以及相关jar包的作用。 ...
本文将深入探讨Lucene.NET如何进行中文分词以及高亮显示的实现。 ### 1. 中文分词 中文分词是将连续的汉字序列切分成具有语义的词语的过程,是自然语言处理(NLP)中的基础步骤。在Lucene.NET中,为了支持中文分词...
在本教程中,我们将深入探讨Lucene中的高亮显示机制,这是搜索引擎返回结果时非常有用的一项功能,可以突出显示与查询匹配的关键字。在实际应用中,用户通常希望看到搜索词在文档中的确切位置,高亮显示使得这些匹配...
### Lucene高亮显示实现详解 #### 一、引言 在搜索引擎开发中,为了提升用户体验,往往需要对搜索结果中的关键词进行高亮处理。这样不仅可以让用户一眼就能看到搜索结果与他们输入的关键词之间的关联性,同时也有...
总之,通过集成IKAnalyzer和Lucene 4.9,我们可以构建一个能够对中文搜索结果进行关键词高亮显示的系统,从而提升用户体验。这个过程涉及到了中文分词、全文搜索、评分系统以及HTML的处理等多个技术点。对于开发人员...
综上所述,Lucene 3.0.1提供了强大的文本搜索能力,能够处理各种文件格式,对文件和数据库内容建立索引,并进行高效的查询。开发者可以利用源码进行定制,配合相应的工具库,实现复杂的信息检索需求。在实际应用中,...
**Lucene高亮显示** 在信息检索领域,用户通常希望在搜索结果中快速找到与查询相关的关键词,这就是所谓的“高亮显示”。Apache Lucene是一个强大的全文搜索引擎库,它提供了多种功能,包括高亮显示搜索结果。高亮...
在本示例中,我们将探讨如何使用Lucene进行基本的增删改查操作,并且了解如何处理中文文档以及利用Luke工具进行索引分析,以及实现搜索结果的高亮显示。 首先,让我们深入理解Lucene的基础概念。Lucene的核心是建立...
总结来说,Lucene5的Highlighter是其全文检索能力的重要组成部分,它通过对搜索结果中的关键字进行高亮,提高了用户对搜索结果的理解和查找效率。通过灵活的组件设计,开发者可以根据具体需求调整高亮策略,以达到...