我们的任务是在Hibernate Search 4.6上实现一个使用分面搜索的应用程序。遗憾的是,我们的数据库模型是关系表和通用表的混合,不可能改变它。
这是我们模型的简化图。我们的索引基于实体,但大多数数据在其他两个表中存储为键/值对。关键在表PropertyType
中,而值在表EntityProperty
中。
这导致索引中的这些字段:
entityname
entityProperties.propertyValue
entityProperties.propertyTypes.propertyName
字段propertyName
将包含构面名称,而propertyValue
包含不同的可能性。问题是propertyName
和propertyValue
之间的关联丢失了。
我们考虑将我们感兴趣的属性转移到Entity
表中,但对于我们的许多EntityProperties
来说这是不可能的。我们被困在这里,任何有关如何解决这个问题的建议都将受到高度赞赏。