如何在 Hibernate Lucene Search 中添加多个限制?
How to add multiple restrictions in Hibernate Lucene Search?
我无法使用 hibernate lucene search
编写多个 where 条件在这里我可以根据以下任何条件进行搜索 keyword
但是我这里有多个关键字所以我如何通过使用应用限制此关键字请帮助我在 hibernate lucene search
中应用多个限制。提前致谢 这是我的查询。
@Override
public List getCompaniesBasedOnSearch(String keyword,String keyword2,String keyword3) throws InterruptedException {FullTextSession fullTextSession = Search.getFullTextSession(session);
fullTextSession.createIndexer(Company.class).startAndWait();
QueryBuilder qb = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity(Company.class).get();
org.apache.lucene.search.Query query = qb.keyword().onFields("company_name","locations.city","locations.state").matching(keyword1).createQuery();
org.hibernate.Query hibQuery = fullTextSession.createFullTextQuery(query, Company_Info.class);
是的……!最后我得到了解决方案,我们可以通过使用组合 queries.Kindly 在 Hibernate Lucene Search 中添加多个限制,通过以下
QueryBuilder qb = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity(Student.class).get();
org.apache.lucene.search.Query query = qb.bool().must( qb.keyword().onFields("name","country","skills.skill").matching(keyword).createQuery())
.must( qb.keyword().onField("skills.skill").matching(skill).createQuery())
.must( qb.keyword().onField("locations.city").matching(location).createQuery())
.must( qb.keyword().onField("jobStatus").matching("active").createQuery())
.must( qb.keyword().onField("postedOrSaved").matching("posted").createQuery())
.createQuery();
org.hibernate.Query hibQuery = fullTextSession.createFullTextQuery(query, Jobs.class);
List<Jobs> result = hibQuery.list();
这里我在 student
个实体字段中执行 (("a" OR "b" OR "c") AND ("d") AND ("e") AND ("f")
操作。
我无法使用 hibernate lucene search
编写多个 where 条件在这里我可以根据以下任何条件进行搜索 keyword
但是我这里有多个关键字所以我如何通过使用应用限制此关键字请帮助我在 hibernate lucene search
中应用多个限制。提前致谢 这是我的查询。
@Override
public List getCompaniesBasedOnSearch(String keyword,String keyword2,String keyword3) throws InterruptedException {FullTextSession fullTextSession = Search.getFullTextSession(session);
fullTextSession.createIndexer(Company.class).startAndWait();
QueryBuilder qb = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity(Company.class).get();
org.apache.lucene.search.Query query = qb.keyword().onFields("company_name","locations.city","locations.state").matching(keyword1).createQuery();
org.hibernate.Query hibQuery = fullTextSession.createFullTextQuery(query, Company_Info.class);
是的……!最后我得到了解决方案,我们可以通过使用组合 queries.Kindly 在 Hibernate Lucene Search 中添加多个限制,通过以下
QueryBuilder qb = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity(Student.class).get();
org.apache.lucene.search.Query query = qb.bool().must( qb.keyword().onFields("name","country","skills.skill").matching(keyword).createQuery())
.must( qb.keyword().onField("skills.skill").matching(skill).createQuery())
.must( qb.keyword().onField("locations.city").matching(location).createQuery())
.must( qb.keyword().onField("jobStatus").matching("active").createQuery())
.must( qb.keyword().onField("postedOrSaved").matching("posted").createQuery())
.createQuery();
org.hibernate.Query hibQuery = fullTextSession.createFullTextQuery(query, Jobs.class);
List<Jobs> result = hibQuery.list();
这里我在 student
个实体字段中执行 (("a" OR "b" OR "c") AND ("d") AND ("e") AND ("f")
操作。