Je suivais document recherche mise en veille prolongée sur les facettage de: https://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#query-facetingComment obtenir l'objet correspondant à hiberner recherche facette
j'ai pu générer mes facettes, par exemple, j'ai mes authorNames COUNT:
name1 = 100
name2 = 200
and so on..
Mais mon problème est de savoir comment je vais interroger l'objet Author, si je veux en afficher d'autres détails.
Aller par l'exemple que j'ai maintenant:
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(em);
QueryBuilder qb = fullTextEntityManager.getSearchFactory().buildQueryBuilder().forEntity(Book.class).get();
org.apache.lucene.search.Query luceneQuery = qb.all().createQuery();
FullTextQuery fullTextQuery = fullTextEntityManager.createFullTextQuery(luceneQuery, Book.class);
FacetingRequest authorFacet = qb.facet().name("authorFacetRequest").onField("authors.name_facet").discrete()
.orderedBy(FacetSortOrder.FIELD_VALUE).includeZeroCounts(false).createFacetingRequest();
// retrieve facet manager and apply faceting request
FacetManager facetManager = fullTextQuery.getFacetManager();
facetManager.enableFaceting(authorFacet);
// retrieve the faceting results
List<Facet> facets = facetManager.getFacets("authorFacetRequest");
facets.forEach(p -> log.info(p.getValue() + " - " + p.getCount()));
Mais dans l'interface graphique que je veux créer un lien avec id = author.id. Mais author.id n'est pas disponible avec la facette. Donc ce que je voudrais est:
List<facetName (authorName), count, referenceId>
Quelle est la façon la plus simple et efficace de mettre en œuvre ce? Existe-t-il un moyen de le faire sans plusieurs requêtes?