当 XWiki 搜索结果返回时,没有关于匹配上下文的指示。只有一个标题和一些物品何时以及谁返回。有没有办法改进结果以包含突出显示找到的匹配项的内容摘要?
问问题
267 次
1 回答
1
是的,当然对于基于标准关键字的搜索,这个速度代码应该可以解决问题。它是在 XWiki Enterprise 5.0 Milestone 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>
最后,您可以通过 url 看到您所做的修订和更改:http://[servername:port]/xwiki/bin/view/XWiki/Results?viewer=history&showminor=true
于 2013-06-11T07:47:24.837 回答