当XWiki搜索结果返回时,没有关于匹配上下文的指示。只返回一个标题和一些时间和项目。有没有办法改进结果,以包括突出显示匹配项的内容摘要?
答案 0 :(得分:1)
是的,当然对于基于标准关键字的搜索,这个速度代码应该可以解决问题。它是在XWiki Enterprise 5.0里程碑1上开发的。
编辑页面:http:// [servername:port] / xwiki / bin / edit / XWiki / Results
我在“评分”部分下方添加了我的更改,但您可以根据自己的需要进行布局。
添加以下代码,该代码将显示最多10个关键字匹配项以及关键字周围的20个前后单词。每个匹配字符串将由管道符号“|”分隔然后关键字以黄色突出显示。
显然,将这个匹配作为肤色会很好,但就我的目的而言,我对这种发展水平并不感兴趣。
<div class="itemOthers">
#set($outputSyntax = $xwiki.getAvailableRendererSyntax('plain', '1.0'))
#if ($outputSyntax)
#set ($preview = $xwiki.getDocument($itemfullname).getRenderedContent($outputSyntax))
#set ($regex = $regextool.quote($request.text))
#set ($regex_summarize = "(?i)(?:((\w+)\W+){0,20})\b\w*$regex\w*\b(((\W+)\w+){0,20})")
#set ($regex_highlight = "(?i)($regex)")
#set ($pattern_summarize = $regextool.compile($regex_summarize))
#set ($matcher_summarize = $pattern_summarize.matcher($preview))
#foreach ( $match_loop in [0,1,2,3,4,5,6,7,8,9] )
#if ($matcher_summarize.find())
#if ($match_loop > 0)
<strong> | </strong>
#end
$escapetool.html($matcher_summarize.group(0)).replaceAll($regex_highlight,'<span style="background-color:yellow;">$1</span>')
#end
#end
#end
</div>
最后,您可以看到通过网址进行的修改和更改:http:// [servername:port] / xwiki / bin / view / XWiki / Results?viewer = history&amp; showminor = true