我有查询并通过此查询获取方面。但是如何从前端将选定的方面添加到下一个查询?
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/