如何使用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
答案 0 :(得分:2)
查看docs中描述的Hibernate Search的Projection功能。 关键是使用要从索引中检索的字段名称列表调用 query.setProjection 。类似的东西:
query.setProjection( "field1", "field2", "field3" );
请注意,因此您将获得对象数组而不是托管的Hibernate实体。