Java Hibernate搜索方面以小写形式返回值

Java Hibernate搜索方面以小写形式返回值,java,lucene,hibernate-search,Java,Lucene,Hibernate Search,我是一个休眠搜索方面的新手。我正在使用facets,我注意到您只能返回字段名的值 我遇到的问题与我的标准分析器用小写字母索引我的值有关。到目前为止,一切都很好,直到我需要显示数据 在原始情况下,如何从facet返回值,例如Ford,Chevrolet等,而不是Ford,Chevrolet 是否有一种从数据库获取值的有效方法,即从值返回pk并从数据库构建实际对象?还是建议将值以原始格式存储在索引中,然后执行getFacetQuery来获取它?我对getFacetQuery一无所知,所以这可能是不

我是一个休眠搜索方面的新手。我正在使用facets,我注意到您只能返回
字段名的

我遇到的问题与我的标准分析器用小写字母索引我的值有关。到目前为止,一切都很好,直到我需要显示数据

在原始情况下,如何从facet返回值,例如
Ford
Chevrolet
等,而不是
Ford
Chevrolet

是否有一种从数据库获取值的有效方法,即从值返回pk并从数据库构建实际对象?还是建议将值以原始格式存储在索引中,然后执行getFacetQuery来获取它?我对getFacetQuery一无所知,所以这可能是不可能的

范例

@Entity
public class Make {

@Field(store = Store.no)
private String name

}
价值观

database: Chevy|Ford
index: chevy|ford
小平面

结果

chevy|ford
但是我想要数据库里的原始案例


请推荐一种最佳做法。多谢各位

看来我的问题的解决方案是为我的索引提供另一个未分析的字段。范例

实体

private class Make {
@Fields({
        @Field(name = "name", analyzer = @Analyzer(definition = "searchtokenanalyzer")),
        @Field(name = "label", analyze = Analyze.NO)
    })
    private String name;
}
方面查询

@Override
    public FacetingRequest getMakeFacetRequest(QueryBuilder builder) {
        FacetingRequest facetingRequest = builder.facet()
                .name("make")
                .onField("make.label")
                .discrete()
                .orderedBy(FacetSortOrder.FIELD_VALUE)
                .includeZeroCounts(true)
                .maxFacetCount(10)
                .createFacetingRequest();
        return facetingRequest;
    }
@Override
    public FacetingRequest getMakeFacetRequest(QueryBuilder builder) {
        FacetingRequest facetingRequest = builder.facet()
                .name("make")
                .onField("make.label")
                .discrete()
                .orderedBy(FacetSortOrder.FIELD_VALUE)
                .includeZeroCounts(true)
                .maxFacetCount(10)
                .createFacetingRequest();
        return facetingRequest;
    }