休眠搜索-完全匹配优先

时间:2019-02-04 16:42:19

标签: java hibernate

我正在尝试进行全文搜索,我面临的唯一问题是事实,确切的匹配不在列表的顶部。如果我搜索“猫”,那么我会得到“ blablacatcc”,“ asdcatsada”和“猫”。有没有办法像这样排序?上面有完全匹配的内容?

我的代码:

final String[] fields = Stream.of(
            Product_.casNumber.getName(),
            Product_.casIndexName.getName(),
            Product_.chemicalName.getName(),
            path(Product_.alternativeNames, ProductName_.alternativeName)
    ).toArray(String[]::new);
    final QueryBuilder builder = manager.getSearchFactory().buildQueryBuilder().forEntity(Product.class).get();
    final Sort sort = builder.sort().byScore().createSort();
    final Query query = builder.keyword().wildcard().onFields(fields).matching("*" + pattern.toLowerCase() + "*").createQuery();
    return manager.createFullTextQuery(query, Product.class).setSort(sort).getResultList();

0 个答案:

没有答案