代码之家  ›  专栏  ›  技术社区  ›  Eric

Spring数据Elasticsearch-使用规范化器创建关键字字段

  •  3
  • Eric  · 技术社区  · 7 年前

    我们正在使用spring数据elasticsearch项目与我们的elasticsearch集群进行交互,现在已经使用了大约一年。最近,我们转到elasticsearch 5。x(来自2.x),其中我们现在有“关键字”数据类型。

    例如

    @Field(type = FieldType.keyword, <some_other_param = some_normalizer>)
    

    这是可以做到的吗?我知道我们也可以使用基于JSON的映射定义,所以如果需要的话,我会回到那个选项上来,但如果可能的话,我希望能够这样做。

    3 回复  |  直到 7 年前
        1
  •  3
  •   Community T.Woody    4 年前

    由于@xhaggi的pull请求已经合并(spring data elasticsearch 3.1.3+或spring Boot 2.1.1),我们有一个 normalizer 中的字段 @Field

    1. 声明a 或者 @InnerField 带参数 type = FieldType.Keyword, normalizer = "%NORMALIZER_NAME%"
    2. 添加 @Setting(settingPath = "%PATH_TO_NORMALIZER_JSON_FILE%")
    3. 将规范化器映射放入位于的json文件中 %PATH_TO_NORMALIZER_JSON_FILE%

    Example of usage

        2
  •  2
  •   Eric    7 年前

    仅供参考,对于任何关注这一点的人来说,答案是目前没有办法做到这一点。

    然而,您可以通过以Elasticsearch格式将映射文件创建为JSON来实现这一点。请参阅: https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html

    然后,您可以创建该JSON文件,并使用将其链接到您的域模型。

    @Mapping(mappingPath = "some/path/mapping.json")

    注意,根据我的经验,这与提供的基于注释的字段映射不兼容。

        3
  •  1
  •   xhaggi    6 年前

    有一个悬而未决的问题 https://jira.spring.io/browse/DATAES-492 等待审查。