Authored by hugufei

优化similarProductList

... ... @@ -23,6 +23,7 @@ import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSONObject;
import com.yoho.search.base.utils.ISearchConstants;
import com.yoho.search.base.utils.ProductIndexEsField;
import com.yoho.search.common.cache.aop.SearchCacheAble;
import com.yoho.search.core.es.model.SearchParam;
import com.yoho.search.core.es.model.SearchResult;
import com.yoho.search.models.SearchApiResult;
... ... @@ -47,6 +48,7 @@ public class SimilarProductServiceImpl implements ISimilarProductService {
private SearchCommonService searchCommonService;
@Override
@SearchCacheAble(cacheInMinute = 30, cacheName = "SIMILAR_PRODUCT_LIST", includeParams = { "product_skn", "viewNum" })
public SearchApiResult similarProductList(Map<String, String> paramMap) {
// 1、 获取入参SKN列表
List<String> productSknList = this.stringToList(paramMap.getOrDefault(PRODUCT_SKN, ""));
... ... @@ -84,7 +86,7 @@ public class SimilarProductServiceImpl implements ISimilarProductService {
// 3、设置分页
searchParam.setOffset(0);
searchParam.setSize(0);
// 4、执行搜索
// 5、执行搜索
SearchResult searchResult = searchCommonService.doSearch(ISearchConstants.INDEX_NAME_PRODUCT_INDEX, searchParam);
if (searchResult == null || searchResult.getAggMaps() == null) {
return new HashMap<String, List<Integer>>();
... ... @@ -141,12 +143,15 @@ public class SimilarProductServiceImpl implements ISimilarProductService {
sortBuilders.add(SortBuilders.scriptSort(new Script("Math.random()"), ScriptSortType.NUMBER).order(SortOrder.ASC));
searchParam.setSortBuilders(sortBuilders);
// 4.查询ES
// 4、设置返回字段
searchParam.setIncludeFields(productIndexBaseService.getProductIndexIncludeFields());
// 5.查询ES
SearchResult searchResult = searchCommonService.doSearch(ISearchConstants.INDEX_NAME_PRODUCT_INDEX, searchParam);
if (searchResult == null) {
return new SearchApiResult().setCode(500).setMessage("exception");
}
// 5.构造返回结果
// 6.构造返回结果
JSONObject dataMap = new JSONObject();
dataMap.put("total", searchResult.getResultList().size());
dataMap.put("page", 1);
... ...