Если ваши поля динамические, предопределенной схемы нет, и Hibernate Search не может определить, как запросить эти поля.Существуют значительные различия в способе выполнения запроса на совпадение, например, в текстовом поле или поле даты.
По этой причине вы не можете использовать DSL Hibernate Search Query для построения ваших запросов.
Однако вы можете использовать нативные API.
Если вы используете интеграцию Lucene, простое создание соответствующих запросов будет работать нормально (если вы создадите правильный):
new TermQuery(new Term("sport", "value"))
Если вы используете экспериментальную интеграцию Elasticsearch, вы можете использовать org.hibernate.search.elasticsearch.ElasticsearchQueries.fromJson( ... )
.Вы должны будете написать весь запрос как JSON, и вообще не сможете использовать Hibernate Search QueryBuilder даже для запросов к статически определенным полям.См. https://docs.jboss.org/hibernate/search/5.11/reference/en-US/html_single/#_queries
Улучшенная поддержка собственных запросов, а также динамических полей с предопределенными типами, которые можно было бы нацеливать в Query DSL, планируется для Hibernate Search 6, но пока не существует.См. HSEARCH-3273 .