如何使用 Spring Data Elasticsearch 为字段实现自定义转换器?

How to implement the custom converter for a field using Spring Data Elasticsearch?

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

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

您必须创建一个转换器:

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;
        }
    }
}

然后为您的实体 属性 注册它 class:

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