如何使用 hibernate lucene 搜索从 table 中检索特定列?
How to retrieve a specific column from a table using hibernate lucene search?
我需要使用 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();
您可以使用投影。
但在此之前,您必须使用 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();
我需要使用 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();
您可以使用投影。 但在此之前,您必须使用 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();