【问题标题】:How to implement the custom converter for a field using Spring Data Elasticsearch?如何使用 Spring Data Elasticsearch 为字段实现自定义转换器?
【发布时间】:2022-01-26 14:34:19
【问题描述】:

我需要在spring data elastic-search 中实现一个自定义转换器。保存和检索时,我需要将某些内容连接到文本。我在这里看到过类似的question。答案是说它现在已经实施并且可用。但我没有找到任何如何实现它的例子。那么有人知道怎么做吗?

【问题讨论】:

    标签: spring-boot elasticsearch spring-data-elasticsearch


    【解决方案1】:

    您可以在库的测试代码中找到示例。

    你必须创建一个转换器:

    class FooConverter implements PropertyValueConverter {
    
        public static final String PREFIX = "foo-";
    
        @Override
        public Object write(Object value) {
            return PREFIX + value.toString();
        }
    
        @Override
        public Object read(Object value) {
    
            String valueString = value.toString();
    
            if (valueString.startsWith(PREFIX)) {
                return valueString.substring(PREFIX.length());
            } else {
                return value;
            }
        }
    }
    

    然后为你的实体类的属性注册它:

    @Document(indexName = "foo")
    class Entity {
        
        @Field(type = FieldType.Text)
        @ValueConverter(FooConverter.class)
        private String someField;
        
        // ...
    }
    

    【讨论】:

    • 感谢您的回答。
    猜你喜欢
    • 2021-11-17
    • 1970-01-01
    • 2021-06-14
    • 2015-05-04
    • 2018-01-19
    • 2020-12-02
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多