0

当 XWiki 搜索结果返回时,没有关于匹配上下文的指示。只有一个标题和一些物品何时以及谁返回。有没有办法改进结果以包含突出显示找到的匹配项的内容摘要?

4

1 回答 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 回答