简体   繁体   English

Hibernate搜索方面,如何返回方面查询Spring MVC

[英]Hibernate search faceting, how to return facet query Spring MVC

I have query and getting facets by this query. 我有查询,并通过此查询获取方面。 But how Can I add selected facet to next query from front end ? 但是,如何从前端将所选构面添加到下一个查询中?

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

List of facets I attach as model attribute. 我作为模型属性附加的构面列表。

I'm assuimg you're using jsp. 我断定您正在使用jsp。 You need to build link with all the old parameters used to show the current results plus a new one narrowing the query. 您需要使用所有用于显示当前结果的旧参数以及一个缩小查询范围的新参数来构建链接。

Example: 例:

<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>

Of course you have to build your query the way it can accept any number of narrowing parameters (example: narrow the results to match a given price range and a given category). 当然,您必须以可以接受任何数量的收窄参数的方式构建查询(例如:收窄结果以匹配给定的价格范围和给定的类别)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM