介绍

使用以下注释时, flex 搜索出现了一个奇怪的问题:
@Field(type = FieldType.Date, index = not_analyzed)
并尝试使用spring flex 搜索JPA存储库插入日期(例如1000)。

另请:What are elastic searches max and min dates by default?

通过将FieldType更改为String,它解决了我的问题,并且在极端情况下我没有收到任何奇怪的错误。

我的问题

FieldType枚举的目的是什么,我们将其用于什么?

public enum FieldType {
    String,
    Integer,
    Long,
    Date,
    Float,
    Double,
    Boolean,
    Object,
    Auto,
    Nested,
    Ip,
    Attachment;

    private FieldType() {
    }
}

我阅读了有关 flex 搜索的文档,但我并不真正了解其用法。

最佳答案

flex 搜索支持多种数据类型,Spring FieldType 保留允许的ElasticSearch数据类型的枚举。它指定在存储时 flex 搜索应在哪种数据类型中映射值。

例如

@Field(type = FieldType.String, index = not_analyzed)
private String name;

上面的代码意味着ElasticSearch应该将名称字段存储为“文本”

ElasticSearch data-types

07-24 13:06