我需要使用Hibernate Search查询检索特定列。我尝试了预测,但没有成功。请帮助我实现这一点,任何建议或建议将不胜感激。 这是我的疑问:
FullTextSession fullTextSession = Search.getFullTextSession(session);
QueryBuilder b = fullTextSession.getSearchFactory()
.buildQueryBuilder().forEntity(Company.class).get();
org.apache.lucene.search.Query luceneQuery =
b.keyword()
.onFields("company_name","city")
.matching("search keyword here!")
.createQuery();
org.hibernate.Query fullTextQuery=fullTextSession.createFullTextQuery(luceneQuery).setProjection().setProperties("company_name");
List result = fullTextQuery.list();
答案 0 :(得分:0)
您可以使用投影。 但在此之前,您必须使用store = Store.yes
存储该列值@Field(store=Store.YES)
private String name;
在程序中,您可以使用投影
Session session = sessionFactory.openSession();
FullTextSession fullTextSession = Search.getFullTextSession(session);
fullTextSession.createIndexer().startAndWait();
QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity(Employee.class).get();
org.apache.lucene.search.Query luceneQuery = queryBuilder.keyword().onFields("name").matching(name).createQuery();
org.hibernate.search.FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery(luceneQuery, Employee.class);
fullTextQuery.setProjection("name");
List list = fullTextQuery.list();