MAGNOLIA CMS - cmsu:simpleSearch适用于Author实例,但在Public实例中不返回任何结果

时间:2011-09-20 16:07:14

标签: jsp magnolia

我使用以下代码显示我的搜索结果

<c:if test="${!empty param.SearchName}">
    <h1>Results for "${fn:escapeXml(param.SearchName)}"</h1>
    <ol>
        <cmsu:simpleSearch query="${param.SearchName}" var="results" startLevel="1" />
        <c:if test="${empty results}">
            <p>No results could be found</p>
        </c:if>
        <c:forEach var="node" items="${results}">
            <li>
                <span class="pageTitle"><a href="${pageContext.request.contextPath}${node.handle}.html">${node.title}</a></span>

                <a href="${pageContext.request.contextPath}${node.handle}.html"><p class="snipet"><cmsu:searchResultSnippet query="${fn:escapeXml(param.SearchName)}" page="${node}" chars="120"/></p></a>
            </li>
        </c:forEach>
    </ol>
</c:if>

它在Author实例中工作正常,但由于某种原因,在公共实例中返回的结果集始终为空。

条件总是返回true。

知道这个问题的来源吗?

提前致谢,A。

1 个答案:

答案 0 :(得分:0)

2 ideas were suggested by Danilo Ghirardelli可能是问题的根源:

  1. 公共实例中的权限问题。匿名用户的读取权限 和/或在没有匿名访问权限的存储库中查询。
  2. 索引在公共实例上被破坏,您可能必须重新生成它们。停用并重新激活整个网站可能会解决此问题。
  3. 检查完这些可能性后:

    1. 匿名用户的许可是正确的。
    2. 我已停用并重新启动整个网站,但确实有效!

      • 比第2点更好的解决方案是:
    3. 3.a在作者实例的管理面板中,从“The-Insider”根页面导出所有页面

      3.b在公共实例的管理面板中,删除所有页面

      3.c在公共实例的管理面板中,激活“The-Insider”根页面上的更改

      3.d在Public Instance的管理面板中,导入您从步骤3.a

      生成的xml文件

      一个。