Мне нужно выполнить поиск по нескольким документам, проиндексированным наasticsearch. Поиск работает, но мне нужно знать тип объекта, который возвращает поиск.
поиск в публичном списке (строковые термины) {
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager);
QueryBuilder authorQB = fullTextEntityManager.getSearchFactory().buildQueryBuilder()
.forEntity(Author.class).get();
QueryBuilder postQB = fullTextEntityManager.getSearchFactory().buildQueryBuilder()
.forEntity(Post.class).get();
QueryBuilder commentQB = fullTextEntityManager.getSearchFactory().buildQueryBuilder()
.forEntity(Comment.class).get();
Query authorLQ = authorQB
.keyword().fuzzy().withEditDistanceUpTo(1).withPrefixLength(1)
.onFields(AUTHOR_FIELDS).matching(terms)
.createQuery();
Query postLQ = postQB
.keyword().fuzzy().withEditDistanceUpTo(1).withPrefixLength(1)
.onFields(POST_FIELDS).matching(terms)
.createQuery();
Query commentLQ = commentQB
.keyword().fuzzy().withEditDistanceUpTo(1).withPrefixLength(1)
.onFields(COMMENT_FIELDS).matching(terms)
.createQuery();
Query luceneQuery = authorQB.bool()
.should(authorLQ)
.should(postLQ)
.should(commentLQ)
.createQuery();
javax.persistence.Query jpaQuery = fullTextEntityManager.
createFullTextQuery(luceneQuery, Author.class, Post.class, Comment.class);
List<Object> result; // need to know object type
try {
result = jpaQuery.getResultList();
} catch (NoResultException nre) {
throw new NoResultException("The search for " + terms + " did not get any results");
}
return result;
}
Это дает мне список всех объектов, но мне нужно точно знать, какой это тип (Автор, Пост или Комментарий). Это возможно сделать, спасибо.