0

如何使用 Hibernate Search 执行搜索,该搜索不会从数据库中检索实际实体,而只会返回这些实体的文档缓存记录?我确保将我需要的字段存储在索引中。在此过程中数据库将处于活动状态且可用,我只是想减少不必要的负载。

@Column
@Field (index = Index.YES, store = Store.YES)
private String title;

@Id
@Column
@DocumentId
@Field (store = Store.YES)
private String guid;

Session sess = sessionFactory.openSession();
FullTextSession fts = org.hibernate.search.Search.getFullTextSession(sess);
//returns matching Articles from database, how would I retrieve only the index records?
Query query = fts.createFullTextQuery(luceneQuery, Article.class);  

版本:

Hibernate Search 4.1.1.Final

Hibernate Core 4.1.6.Final

Lucene 3.5

4

1 回答 1

2

查看文档中描述的 Hibernate Search 的投影功能。关键是使用要从索引中检索的字段名称列表调用query.setProjection 。就像是:

query.setProjection( "field1", "field2", "field3" );

请注意,结果您将获得对象数组而不是托管的 Hibernate 实体。

于 2012-09-11T07:58:28.077 回答