Hibernate Search,过滤掉具有最高值的对象

时间:2011-05-05 07:03:07

标签: hibernate search filter lucene hibernate-search

我有一个像这样的EntityObject

public class Adm{
private String id;
private String version;
private String name;
private String mimetype;
    ... 
    ...
    ...

}

我想添加一个过滤掉具有相同名称的最高版本对象的所有对象。任何人都知道如何使用过滤器或创建查询?

我使用的是Hibernate Search Version 3.3.0。

// Trind

1 个答案:

答案 0 :(得分:0)

在搜索中进行过滤的方法是通过FullTextFilters。见http://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#query-filter 您可以在启用参数时将参数传递给过滤器,例如

fullTextQuery.enableFullTextFilter("version").setParameter( "max", 1001 );

您可以传递任意数量的参数,并传递您想要的任何参数类型(您只需在滤镜实现中进行适当的转换)。您可能需要另一个查询来确定最大值。毕竟可能是HQL或Criteria查询。 在过滤器中,您可以使用 NumericRangeQuery 。当然这完全取决于您的域模型。您尚未包含正在尝试运行的Hibernate Search注释和Hibernate Search查询。您还可以预先确定最大版本并缓存吗? 希望,这给你一些指示。

相关问题