У меня есть запрос и получение граней по этому запросу. Но как я могу добавить выделенную грань к следующему запросу из интерфейса?
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>
Конечно, вы должны построить свой запрос так, как он может принимать любое количество сужающих параметров (пример: сузить результаты, чтобы они соответствовали заданному диапазону цен и данной категории).