Hibernate搜索faceting,如何返回facet查询Spring MVC

时间:2014-06-04 11:30:10

标签: java spring hibernate hibernate-search facet

我通过此查询查询并获得方面。但是如何从前端向下一个查询添加选定的构面?

     FacetingRequest categoryFacetingRequest = qBuilder.facet()
            .name("categoryFaceting").onField("distr").discrete()
            .orderedBy(FacetSortOrder.COUNT_DESC).includeZeroCounts(false)
            .createFacetingRequest();
    FacetManager facetManager = fullTextQuery.getFacetManager();
    facetManager.enableFaceting(categoryFacetingRequest);

    List<Facet> facets = facetManager.getFacets("categoryFaceting");

我作为模型属性附加的构面列表。

1 个答案:

答案 0 :(得分:0)

我保证你正在使用jsp。您需要使用用于显示当前结果的所有旧参数以及用于缩小查询的新参数来构建链接。

示例:

<c:forEach items="${facets}" var="narrowingFacetParam" varStatus="loop">
    <li>    
        <a href='
            <c:url value="search">
                <c:param name="oldQueryParam1" value="${oldQueryParam1value}"/>
                <c:param name="oldQueryParam2" value="${oldQueryParam2value}"/>
                ...
                <c:param name="narrowingFacetParam" value="${narrowingFacetParam.value}"/>
            </c:url>
        '>${narrowingFacetParam.name}</a>

    </li>                               
</c:forEach>

当然,您必须以接受任意数量的缩小参数的方式构建查询(例如:缩小结果以匹配给定的价格范围和给定的类别)。

相关问题