我很难设计一个查询来搜索价格在 100 到 200 之间的 Item 类的所有实例。
这是我的项目类:
@Entity
public class Item {
@Id @DocumentId
Long id
@Field(index = Index.UN_TOKENIZED, store = Store.YES)
@NumericField
@FieldBridge(impl = BigDecimalNumericFieldBridge.class)
BigDecimal price = BigDecimal.ZERO
}
BigDecimalNumericFieldBridge 是这里描述的类:https ://hibernate.onjira.com/secure/attachment/15952/proposed_doc.txt
卢克向我展示了我有几份价格在 100 到 200 之间的文件。
这是我的查询:
FullTextSession fullTextSession = Search.getFullTextSession(session);
final QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity(Item).get();
Query rootQuery = queryBuilder.bool()
.must(queryBuilder.range().onField('price').above(100).createQuery())
.must(queryBuilder.range().onField('price').below(200).createQuery())
.createQuery();
FullTextQuery ftq = fullTextSession.createFullTextQuery(rootQuery, Item);
List<Item> instanceList = ftq.list();
但无论范围如何,列表始终是空的。知道我做错了什么吗?
顺便说一句,我正在使用 Hibernate Search 3.4.1 和 Hibernate 3.6.10。