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

标签 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");

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

最佳答案

我假设你正在使用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>

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

关于java - Hibernate搜索faceting,如何返回facet查询Spring MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24036224/

相关文章:

java - 如何在用户输入新行时添加项目符号

java - @JsonView 如何与@RequestBody 一起使用

java - 不受 Spring 管理的域对象上的 AspectJ 切入点表达式

java - 不同持久化上下文中的不同 hashCode()?

java - Spring 中的 DAO 和服务层 : session management

java - Spring Json 解码期间出现 JsonMappingException

javascript - 无法在 angularjs 中调用 ng-click ?

java - Spring Cloud - 配置客户端缓存属性

java - JPA 默认获取类型

java - for和while循环的区别(不是语法和效率)