今天在搜索结果高亮时候碰到了一个小问题,是“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 高亮显示. java 已测试
lucene高亮显示
java实现lucene高亮显示Html,直接测试就可以用;java实现的对html进行高亮显示,
基于SpringBoot编写的一个Lucene测试Demo把匹配到的结果高亮摘要显示在前端jsp上
lucene3.5高亮
NULL 博文链接:https://sunlongan666.iteye.com/blog/580380
lucene-highlighter-3.5.0.jar lucene高亮包
NULL 博文链接:https://navylee.iteye.com/blog/740128
lucene.NET 中文分词 高亮 lucene.NET 中文分词 高亮 lucene.NET 中文分词 高亮 lucene.NET 中文分词 高亮
利用IKAnalyzer结合LUCENE.4.9进行中文分词的高亮显示。
这个是自己写的lucene分页高亮程序虽然有些不足但是毕竟是自己研究半天总结出来的麻烦各位帮忙给点分哈哈祝大家新年快乐!
Lucene.Net.dll Highlighter.Net.dll
java实现高亮显示的jar包,lucene用的jar包,net.teamhot.lucene
用来查看lucene index的工具 分析index的结构。下载解压后直接点击运行即可!
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
项目中代码包含了lucene的增删改查,中文词分器、luke查看工具、高亮显示等,mysql数据库等,作为新手学习lucene完全够用了,如果想深入学习,需要对其中属性等深入研究,请自行百度。
Luke 是查询LUCENE索引文件的工具,而且用 Luke 的Search可以做查询.
org.apache.lucene.index.IndexWriter public abstract class Directory org.apache.lucene.store.Directory public abstract class Analyzer org.apache.lucene.analysis.Analyzer public final class ...
lucene 对 xml建立索引 建立索引就是怎么简单 呵呵
lucene jar 2.4.0使用jar包加高亮包.外加commons-logging-1.0.4包