Projection of _ fields


Can siblings of field _source (e.g. _type) found in Elasticsearch indexed documents be projected in (Hibernate Search) query results?


Not currently. However, we expose a few projections that should address most use cases. In particular, to fetch the type, you can use the Hibernate Search specific projection, which will give your the class of the indexed entity.

For example:

import static;


FullTextQuery<?> query = ...;
query.setProjection( ElasticsearchProjectionConstants.OBJECT_CLASS, ElasticsearchProjectionConstants.ID );

List<List<?>> results = (List<List<?>>) query.getResultList();
for ( List<?> projection : results ) {
   Class<?> objectClass = (Class<?>) projection.get( 0 );
   Object objectId = projection.get( 1 );
   // ... do something with the data ...