【发布时间】:2021-06-14 20:30:03
【问题描述】:
我正在使用 Spring Data Elasticsearch 4.0.0,我想在我的实体之间建立父子关系。我发现@JoinTypeRelation 带有 4.1.X 版本,但不幸的是,我坚持使用 4.0.0。官方文档没有任何关于如何实现join-fields的信息,但我希望还是有办法的。
为了提供更详细的信息:由于 ES 7.6.2 不再支持类型,我将我的两个实体(父和子)合并到一个单独的类中,该类包含父或子信息,但从不同时包含两者。
@Document(indexName = "my_index")
public class ParentOrChild {
@Id
private String _id;
@Field(type = FieldType.Keyword)
private String someParentProperty;
@Field(type = FieldType.Keyword)
private String someChildProperty;
// getters and setters
}
现在我想创建一个连接字段,以便代表孩子的实体可以引用另一个代表父母的实体。我的目标是稍后通过搜索子实体的属性来找到父实体,如下所示:
GET my_index/_search
{
"query": {
"has_child" : {
"type" : "_doc",
"query" : {
"fuzzy" : {
"someChildProperty" : "value"
}
}
}
}
}
感谢您给我的任何提示。
感谢和亲切的问候, ElasticsearchLearner
【问题讨论】: