solr set java opts_Java SolrQuery.setFacetPrefix方法代碼示例

import org.apache.solr.client.solrj.SolrQuery; //導入方法依賴的package包/類

public static Map categoriesAvailable(String catalogId, String categoryId, String productId,

String facetPrefix, boolean displayproducts, int viewIndex, int viewSize, List queryFilters, Boolean excludeVariants, String core) {

// create the data model

Map result = new HashMap<>();

HttpSolrClient client = null;

QueryResponse returnMap = new QueryResponse();

try {

// do the basic query

client = SolrUtil.getHttpSolrClient(core);

// create Query Object

String query = "inStock[1 TO *]";

if (categoryId != null)

query += " +cat:"+ SolrExprUtil.escapeTermFull(categoryId);

else if (productId != null)

query += " +productId:" + SolrExprUtil.escapeTermFull(productId);

SolrQuery solrQuery = new SolrQuery();

solrQuery.setQuery(query);

if (catalogId != null)

solrQuery.addFilterQuery("+catalog:" + SolrExprUtil.escapeTermFull(catalogId));

if (excludeVariants == null) excludeVariants = SolrProductSearch.excludeVariantsDefault;

if (excludeVariants)

SolrProductUtil.addExcludeVariantsFilter(solrQuery);

if (displayproducts) {

if (viewSize > -1) {

solrQuery.setRows(viewSize);

} else

solrQuery.setRows(50000);

if (viewIndex > -1) {

// 2016-04-01: This must be calculated

//solrQuery.setStart(viewIndex);

if (viewSize > 0) {

solrQuery.setStart(viewSize * viewIndex);

}

}

} else {

solrQuery.setFields("cat");

solrQuery.setRows(0);

}

if(UtilValidate.isNotEmpty(facetPrefix)){

solrQuery.setFacetPrefix(facetPrefix);

}

solrQuery.setFacetMinCount(0);

solrQuery.setFacet(true);

solrQuery.addFacetField("cat");

solrQuery.setFacetLimit(-1);

if (Debug.verboseOn()) Debug.logVerbose("solr: solrQuery: " + solrQuery, module);

returnMap = client.query(solrQuery,METHOD.POST);

result.put("rows", returnMap);

result.put("numFound", returnMap.getResults().getNumFound());

} catch (Exception e) {

Debug.logError(e.getMessage(), module);

}

return result;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值