码迷,mamicode.com
首页 > 其他好文 > 详细

Solr 高亮源码阅读

时间:2015-08-26 22:45:08      阅读:275      评论:0      收藏:0      [点我收藏+]

标签:

Solr高亮使用了很多Lucene的源码,在Lucene源码org.apache.lucene.search.highlight包的Highlighter.java里的方法:

public final TextFragment[] getBestTextFragments(

    TokenStream tokenStream,

    String text,

    boolean mergeContiguousFragments,

    int maxNumFragments)

会对text文本(document中一个field的文本),逐个token,逐个token 的判断是否应该高亮。而其中关键语句

String markedUpText=formatter.highlightTerm(encoder.encodeText(tokenText), tokenGroup);

这一句,对于解析的每一个tokenText,判断其是否应该高亮,返回给markedUpText。判断的依据就是tokenGroup里保存的一个score,只有当这个score大于0时,才返回高亮文本,而返回的高亮文本会通过预设的pre tag和post tag包起来,也就是默认的<em>和</em>标签。



Solr 高亮源码阅读

标签:

原文地址:http://my.oschina.net/u/2242064/blog/497626

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!