Solr多條件動態查詢
阿新 • • 發佈:2018-11-02
- solr多條件查詢引數設定
-
SolrQuery solrQuery = new SolrQuery(); StringBuilder params = new StringBuilder(); if(StringUtils.isEmpty(productListVo.getMinShopPrice()) && !StringUtils.isEmpty(productListVo.getMaxShopPrice())){ params.append(" AND shopPrice: [ * TO "+productListVo.getMaxShopPrice()+" ] "); }else if(!StringUtils.isEmpty(productListVo.getMinShopPrice()) && StringUtils.isEmpty(productListVo.getMaxShopPrice())){ params.append(" AND shopPrice: [ "+productListVo.getMinShopPrice()+" TO * ] "); }else if(!StringUtils.isEmpty(productListVo.getMinShopPrice()) && !StringUtils.isEmpty(productListVo.getMaxShopPrice())){ params.append(" AND shopPrice: [ "+productListVo.getMinShopPrice()+" TO "+productListVo.getMaxShopPrice()+" ] "); } if(!StringUtils.isEmpty(productListVo.getProType())){ params.append(" AND proType: " + productListVo.getProType()); } if(!StringUtils.isEmpty(productListVo.getProName())){ params.append(" AND searchText: " + productListVo.getProName()); } if(!StringUtils.isEmpty(productListVo.getCity())){ params.append(" AND city: " + productListVo.getCity()); } if(!StringUtils.isEmpty(productListVo.getProCategoryName2())){ params.append(" AND proCategoryName2: " + productListVo.getProCategoryName2()); } if(!StringUtils.isEmpty(productListVo.getProCategoryName3())){ params.append(" AND proCategoryName3: " + productListVo.getProCategoryName3()); } if(!StringUtils.isEmpty(productListVo.getModelType())){ params.append(" AND modelType: " + productListVo.getModelType()); } String queryString = params.toString(); if(!StringUtils.isEmpty(queryString)){ queryString = queryString.substring(4); } solrQuery.setQuery("*:*"); //必填條件(*:* 為預設所有資料) solrQuery.setFilterQueries(queryString); //篩選條件, 篩選setQuery條件下的資料 if(!StringUtils.isEmpty(productListVo.getProName())){//如果篩選條件中有搜尋關鍵詞,用這種方式 solrQuery.setQuery("searchText: " + productListVo.getProName()); }else{ solrQuery.setQuery("*:*"); }