Отношения индексируются с использованием сложенных объектов в DIH. Загляните на страницу DIH в вики Solr.
Есть также несколько основных примеров этого, включенных в дистрибутивы Solr, смотрите в examples / example-DIH.
Однако здесь есть ограничение: solr (в настоящее время) не поддерживает отношения между индексными документами, поэтому вам придется найти обходной путь для индексации этого. Например, просто сохраняя отображаемые данные в неиндексированном поле (что может потребовать очень частого переиндексации):
<document>
<entity name="hotel" query="select * from hotel">
<field column="id" name="hotel_id" />
<field column="hotel_name" name="hotel_name" />
<entity name="hotel_category_display"
query="SELECT STATEMENT THAT RETURNS JSON REPRESENTATION">
<field column="category" name="category" />
</entity>
</document>
Или путем сохранения только идентификатора категории и выполнения поиска (либо по базе данных, либо по индексу категорий по отдельности и поиску по Solr) в момент поиска:
<entity name="hotel_category_display"
query="SELECT STATEMENT THAT RETURNS JSON REPRESENTATION">
<field column="category" name="category" />
</entity>