【问题标题】:How to implement join-fields with Spring Data Elasticsearch 4.0.0如何使用 Spring Data Elasticsearch 4.0.0 实现连接字段
【发布时间】: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

【问题讨论】:

    标签: elasticsearch spring-data


    【解决方案1】:

    我了解到连接非常昂贵,我应该通过非规范化数据来避免它们。我会这样做,它为我解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-18
      • 2015-05-04
      • 1970-01-01
      相关资源
      最近更新 更多