【问题标题】:Can I improve the XWiki search results to include keyword matches?我可以改进 XWiki 搜索结果以包含关键字匹配吗?
【发布时间】:2013-06-11 07:47:24
【问题描述】:

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

【问题讨论】:

    标签: java search velocity xwiki


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-26
      • 2012-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      • 2011-04-26
      相关资源
      最近更新 更多