Hibernate Search,我做得对吗?

时间:2011-03-16 20:52:39

标签: lucene hibernate-search

我有一个实体,我希望使用Hibernate搜索进行索引,以利用全文搜索功能。实体有几个我需要过滤的字段。举个例子:

@Field(index = Index.TOKENIZED, store = Store.NO)
@Lob
private String description;

@Field(index = Index.UN_TOKENIZED, store = Store.NO)
@Enumerated(EnumType.STRING)
@NotNull
private Type type;

description字段是我想要使用全文搜索的内容。 Type字段我只想做一个简单的旧比赛。我认为Lucene应该在进行全文搜索时直接进行匹配,而我应该使用像CriteriaBuilder之类的东西来处理额外的过滤。但是,我找不到任何方法将这两者结合使用,并且在我的搜索算法中使用BooleanJunction运算符,mustmatchingkeyword在我的字段上需要直接匹配。

所以我的问题是,我做得对吗还是我应该只使用Lucene进行全文搜索并以其他方式过滤其他属性?

非常感谢, 财务巴雷

1 个答案:

答案 0 :(得分:1)

@Finbarr,我的建议是只使用Hibernate Search。我建议您按类型过滤结果,应使用Hibernate Search FullTextFilter并在FullTextQuery上启用过滤器,在执行此查询之前搜索“description”。如果文档不够,我可以为您发布一个示例,我经常使用这些过滤器并且它们运行良好。