solrj - 序列化枚举字段 spring 数据 solr

标签 solrj spring-data-solr

我的域对象中有这个字段

@Field
@Enumerated(EnumType.STRING)
private SectionType sectionType;

但是当我检查存储在 Solr 中的值时,它类似于:
com.x.y.objects.SectionType:H_HPI

我想要的只是 H_HPI 或者就好像我在调用 special.name() 方法
此外,我想要一个序列化程序,为我的域对象中的所有枚举字段执行此操作。

我知道,例如,neo4j 有这样一个序列化程序,可以作为注释提供给字段。 mongodb 也会自动进行转换。

最佳答案

我遇到了同样的问题,并从 Spring Data Solr 代码中发现了这个问题

else if (fieldValue instanceof Enum) {
            field.setValue(this.getConversionService().convert(fieldValue, String.class), 1f);
        }

它设置字符串值

https://github.com/spring-projects/spring-data-solr/commit/4bf0af3344ec9e92ac241eaa25883e73b08f3b0b

关于solrj - 序列化枚举字段 spring 数据 solr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38833157/

相关文章:

java - Solr:判断文件是否存在

java - 如何在 Solr 中以 List<String> 形式获取拼写检查响应

java - solrj : expicit commit required after add?

java - Spring data solr HttpSolrClient 不使用来自实体的核心注释

java - Tomcat 在关机时挂起

java - CloudSolrClient 线程安全吗?

java - 使用 Solr 索引文件会阻塞文件

java - 如何使用 spring-data-solr 在空间搜索中返回距离和分数

java - 响应式(Reactive) spring-data-solr 存储库

solr - Spring数据Solr : IllegalArgumentException - this argument is required