Hibernate搜索筛选器没有预期的枚举结果

Hibernate搜索筛选器没有预期的枚举结果,hibernate,lucene,hibernate-search,Hibernate,Lucene,Hibernate Search,我正在使用HibernateSearch3.4,遇到了一个小问题。我尝试使用一个筛选器(CourseStatusFilterFactory),但每次启用它时,都不会返回任何结果。我还有一个过滤器可以正常工作(DeletedFilterFactory),所以我不确定问题出在哪里 以下是我试图搜索的对象: @Entity @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) @Indexed @FullTextFilterDefs({ @Fu

我正在使用HibernateSearch3.4,遇到了一个小问题。我尝试使用一个筛选器(
CourseStatusFilterFactory
),但每次启用它时,都不会返回任何结果。我还有一个过滤器可以正常工作(
DeletedFilterFactory
),所以我不确定问题出在哪里

以下是我试图搜索的对象:

@Entity
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@Indexed
@FullTextFilterDefs({
    @FullTextFilterDef(name = "statusFilter", impl = CourseStatusFilterFactory.class, cache = FilterCacheModeType.NONE),
    @FullTextFilterDef(name = "deletedCourse", impl = DeletedFilterFactory.class, cache = FilterCacheModeType.NONE)})
public class Course extends LightEntity implements Serializable {

    private static final long serialVersionUID = 21L;
    @Id
    @DocumentId
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    @Field(name = "title", index = Index.TOKENIZED, store = Store.YES)
    private String title;
    @Field(name = "coursestatus", index = Index.TOKENIZED, store = Store.YES)
    @Enumerated(EnumType.STRING)
    private CourseStatus status;}
我的过滤厂有:

public class CourseStatusFilterFactory {

private CourseStatus status;

public void setStatus(CourseStatus status) {
    this.status = status;
}

@Key
public FilterKey getKey() {
    StandardFilterKey key = new StandardFilterKey();
    key.addParameter(status);
    return key;
}

@Factory
public Filter getFilter() {
    String statusString = new EnumBridge().objectToString(this.status);
    Query query = new TermQuery(new Term("coursestatus", statusString));
    CachingWrapperFilter cachingWrapperFilter = new CachingWrapperFilter(new QueryWrapperFilter(query));
     return cachingWrapperFilter;
}}
要启用我的过滤器,请执行以下操作:

persistenceQuery.enableFullTextFilter("statusFilter").setParameter("status", CourseStatus.PUBLISHED);
在调试代码时,我可以看到过滤器中的查询设置为“coursestatus:PUBLISHED”,但我仍然有0个结果,尽管应该有几十个


你知道从哪里开始吗?

多亏了学校里一些人的帮助,我才解决了这个问题

我需要改变

@Field(name = "coursestatus", index = Index.TOKENIZED, store = Store.YES)

@Field(name = "coursestatus", index = Index.UN_TOKENIZED, store = Store.YES)