Magnolia CMS:如何获取基于区域设置的搜索结果摘录?

时间:2015-09-25 13:39:12

标签: search solr internationalization magnolia

使用文档中提供的搜索示例代码段

https://documentation.magnolia-cms.com/display/DOCS/Search#Search-Displayingpagesinthewebsiteworkspace

[#list searchResults as item]
    <a href="${cmsfn.link(item)}" class="list-group-item">
        <h4 class="list-group-item-heading">${item.title!}</h4>
        <p class="list-group-item-text">${item.excerpt!}</p>
    </a>
[/#list]

变量${item.excerpt!}会返回所有语言的摘录,而不仅仅是当前的区域设置。因此,如果我有德语(de)和法语(fr)的页面,则此${items.excerpt!}包含并显示索引的标题元素,例如两次。 Solr不会根据语言单独提取和存储文本吗?

${item.title}以正确的语言显示。

如何才能获取当前区域设置的摘录?

DE搜索(也显示法语文本):

enter image description here

FR搜索(也显示德语文字):

enter image description here

1 个答案:

答案 0 :(得分:1)

由于excerpt属性实际上不是属性,而是Jackrabbit rep:excerpt()函数的结果(请参阅SearchTemplatingFunctions code),简短的答案是不,它是不可能

无论如何,您始终可以为Jackrabbit实施自己的SearchTemplatingFunctions(和/或ExcerptProvider。)