我想对实体进行全文搜索。
当我使用单个关键字但不使用其他关键字时,它可以工作。
Query luceneQuery = qb
.keyword()
.wildcard()
.onFields("description", "brand" )
.matching("*" + searchTerm + "*").createQuery();
在一种情况下,我有一个实体,其描述等于“ car”,品牌等于“ ford”
如果查询是“ car”或“ ford”,但不是“ car ford”,则搜索返回预期结果
有什么想法吗?
谢谢
答案 0 :(得分:0)
Query query = qb.bool()
.should( qb.keyword().fuzzy().onField("description").ignoreFieldBridge().matching(searchTerm).createQuery() )
.should( qb.keyword().fuzzy().onField("color").ignoreFieldBridge().matching(searchTerm).createQuery() )
.should(qb.keyword().fuzzy().onField("brand").matching(searchTerm).createQuery() )
.createQuery();