在XQuery中构建自定义搜索功能(在eXist-db中运行)后,我发现了KWIC(KeyWord In Context)模块,该模块解决了我的代码遇到的大部分问题。
我已使用this blog(direct link的版本更新了KWIC到更新的模块),但仍有一个问题我正在尝试修复。
我正在使用以下代码显示搜索结果:
let $kwicconfig := <config xmlns="" width="60" preserve-space="true" format="p" />
{for $match in $results
let $expanded := kwic:expand($match)
return
<li>
<em>{kwic:get-summary($expanded, ($expanded//exist:match)[1], $kwicconfig)}</em>
</li>
}
显示以下示例结果:
...和标准的解释。将联系审查员b ...
我仍然是XQuery的初学者,如何修改KWIC函数以便结果wordwraps / truncates整个单词,并且不会像现在那样拆分单词?
答案 0 :(得分:1)
请参阅exists-open邮件列表中的this thread,其中包含指向具有此功能的已修改kwic.xql的链接。更高级的方法是使用内置的kwic.xql函数,但使用$callback
参数将回调函数传递给truncate-previous
和truncate-following
函数,并使用自定义修剪逻辑。