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 に答える