Spring Data Elasticsearch - 使用规范器创建关键字字段

Eri*_*ric 3 java spring spring-data-elasticsearch

我们正在使用 spring-data-elasticsearch 项目与我们的 elasticsearch 集群进行交互,并且已经使用它大约一年了。最近,我们从 2.x 迁移到了 elasticsearch 5.x,现在我们有了“关键字”数据类型。

我想将这些关键字索引为小写值,我知道这可以使用字段标准化器来完成。我在文档或在线中找不到可以通过基于注释的映射将规范器添加到字段的任何地方。例如

@Field(type = FieldType.keyword, <some_other_param = some_normalizer>)
Run Code Online (Sandbox Code Playgroud)

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

任何帮助将不胜感激!

kim*_*eik 5

由于@xhaggi的拉取请求已被合并(spring-data-elasticsearch 3.1.3+或Spring Boot 2.1.1),我们normalizer在注释中有一个字段@Field

要使用它,我们需要:

  1. 声明 a@Field或 an@InnerField带参数type = FieldType.Keyword, normalizer = "%NORMALIZER_NAME%"
  2. @Setting(settingPath = "%PATH_TO_NORMALIZER_JSON_FILE%")在班级级别添加。
  3. 将规范化器映射放入 json 文件中%PATH_TO_NORMALIZER_JSON_FILE%

使用示例