【发布时间】:2017-12-21 17:57:56
【问题描述】:
当我搜索“cars blue”时,我会得到与“cars”或“blue”匹配的所有结果,但我需要同时匹配它们。我已经阅读了有关将一些 defaultOperator 设置为 AND 的信息,但我找不到在哪里执行此操作,
我也不能使用PhraseQuery,因为搜索查询中术语的顺序无关紧要,
这是我目前的代码,谢谢!
// create the query using Hibernate Search query DSL
QueryBuilder queryBuilder = fullTextEntityManager.getSearchFactory()
.buildQueryBuilder().forEntity(Articulo.class).get();
// a very basic query by keywords
BooleanJunction<BooleanJunction> bool = queryBuilder.bool();
bool.must(queryBuilder.keyword()
.onFields("description")
.matching(text)
.createQuery()
);
Query query = bool.createQuery();
FullTextQuery jpaQuery =
fullTextEntityManager.createFullTextQuery(query, Articulo.class);
return jpaQuery.getResultList();
注意:我使用的是 Hibernate Search 5.6.4
【问题讨论】:
标签: lucene querydsl hibernate-search