RestHighLevelClient--分页多条件模糊查询

RestHighLevelClient--查询条件:id精准查询、goodsName模糊查询并分页,怎么实现?

"goodsName": {
"type": "text",
"analyzer": "ik_max_word"
},
"id":{
"type":"long"
},

/**
     * es查询商品信息
     *
     * @param req
     * @return
     */
    private SearchResponse getCommodityList(StandFillCommodityRequest req) {
        SearchRequest searchRequest = new SearchRequest(index);
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        //根据ID进行排序
        sourceBuilder.sort("id", SortOrder.ASC);
        //查询条件
        BoolQueryBuilder mustQuery = QueryBuilders.boolQuery();
        if (StringUtils.isNotBlank(req.getId())) {
            mustQuery.must(QueryBuilders.termQuery("id", req.getId()));
        }
        if (StringUtils.isNotBlank(req.getGoodsName())) {
            mustQuery.must(QueryBuilders.matchPhraseQuery("goodsName", (req.getGoodsName())));
        }
        //查询字段
        StringBuffer fields = new StringBuffer();
        fields.append("id").append(",");
        fields.append("goodsName").append(",");
        sourceBuilder.fetchSource(new FetchSourceContext(true, fields.toString().split(","), Strings.EMPTY_ARRAY));
        //分页
        sourceBuilder.query(mustQuery);
        sourceBuilder.from((req.getPageNum() - 1) * req.getPageSize());
        sourceBuilder.size(req.getPageSize());
        sourceBuilder.trackTotalHits(true);
        searchRequest.source(sourceBuilder);
        //开始查询
        SearchResponse response;
        List<Map<String, Object>> list = null;
        try {
            response = client.search(searchRequest, RequestOptions.DEFAULT);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
        return response;
    }


这个模糊查询搞得我好蒙

什么问题 查不出来?