【发布时间】:2017-01-06 12:33:18
【问题描述】:
我的目标是仅在活动项目中搜索 这是我的代码 sn-p:
FullTextEntityManager fullTextEntityManager =
Search.getFullTextEntityManager(this.getEntityManager());
QueryBuilder queryBuilder =
fullTextEntityManager.getSearchFactory()
.buildQueryBuilder()
.forEntity(Myclass.class)
.get();
BooleanJunction<BooleanJunction> booleanJunction = queryBuilder.bool();
for(String token : tokens){
booleanJunction.should( queryBuilder.keyword()
.wildcard()
.onFields("field1", "field2", "field3")
.matching(token + "*")
.createQuery());
}
FullTextQuery jpaQuery = fullTextEntityManager.createFullTextQuery(booleanJunction.createQuery(), MyClass.class);
我想用 field4 过滤,它是 Object,Enum, 我试过这个:
booleanJunction.must( queryBuilder.keyword()
.wildcard()
.onField("field4")
.matching(Status.ACTIVE)
.createQuery());
状态对象是枚举。
在这种情况下,如果上层不应该找到任何结果是所有活动项目,它会发生,因为它是布尔查询..
有什么建议吗?
【问题讨论】:
标签: hibernate lucene full-text-search hibernate-search