На данный момент Hibernate Search предоставляет возможности соединений во время выполнения.
Если ваша цель - упорядочить результаты «первыми родителями», я думаю, что вы сможете создать метод получения, который создает строку, аналогичную « rootId.grandParentId.parentId.thisId "и индексировать результат этого метода получения. Затем вы можете отсортировать по этой строке. Это, безусловно, было бы хаком, но это может сработать.
В качестве альтернативы, вы можете использовать собственные возможности объединения Lucene или Elasticsearch в Hibernate Search, но для этого потребуются обширные знания Lucene или Elasticsearch.
С помощью Hibernate Search 5 вы можете реализовать его для Lucene, но, вероятно, не для Elasticsearch. К сожалению, документация по функциям Lucene недостаточна.
С помощью Hibernate Search 6 вы сможете реализовать его в обоих случаях. Вам понадобятся: