我正在使用Hibernate Search与Elasticsearch集成版本5.8.2和5.6.
假设我有两个使用相同数据库的应用程序,我想搜索Person实体.两个应用程序都将更新索引,但只会读取其中一个.
因为默认情况下Hibernate Search对types 使用完全限定的类名,所以我最终为同一个实体提供了2种不同的类型:
Person - > com.example.x.Person
Person - > com.example.y.Person
在我正在执行搜索的应用程序中,在构建搜索查询时,Hibernate Search会自动添加filter查询type:
"filter": {
"type": {"value": "com.example.x.Person"}
}
Run Code Online (Sandbox Code Playgroud)
因此搜索结果不包含com.example.y.Person类型的记录.
有什么办法可以自定义类型名称吗?
或者,有没有办法禁用/自定义添加的filter查询?
你暂时做不到。
有趣的是,几天前我们刚刚遇到了一个非常相似的问题:Override Elasticsearch _type in Hibernate Search。
我的建议如下:如果它是完全相同的实体,您应该将其提取到一个公共 jar 中,并在两个应用程序中使用相同的实体(如果您无法提取它,您仍然可以使用相同的包,但我建议提取它,以便您确定它完全相同)。
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |