马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本系列文章重要先容基于 Spring Data Elasticsearch 实现商品搜索的后端代码,先容代码逻辑和代码实现。
重要实现功能:根据搜索关键字查询、条件筛选、规格过滤、代价区间搜索、搜索查询分页、搜索查询排序、高亮查询。
重要应用技能:canal,Eureka,微服务架构(Microservices Architecture),Spring Data Elasticsearch
一、根据关键字查询商品
(1) shangcheng_service_search项目创建SearchService接口
- public interface SearchService {
-
-
-
- /**
- * 全文检索
- * @param paramMap 查询参数
- * @return
- */
- public Map search(Map<String, String> paramMap) throws Exception;
- }
复制代码 (2) shangcheng_service_search项目创建SearchService接口实现类SearchServiceImpl
- @Service
- public class SearchServiceImpl implements SearchService {
-
-
-
- @Autowired
- private ElasticsearchTemplate esTemplate;
-
-
-
- //设置每页查询条数据
- public final static Integer PAGE_SIZE = 20;
-
- @Override
- public Map search(Map<String, String> searchMap) throws Exception {
-
-
- Map<String, Object> resultMap = new HashMap<>();
-
- //有条件才查询Es
- if (null != searchMap) {
-
-
- //组合条件对象
- BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
- //0:关键词
- if (!StringUtils.isEmpty(searchMap.get("keywords"))) {
-
-
- boolQuery.must(QueryBuilders.matchQuery("name", searchMap.get("keywords")).operator(Operator.AND));
-
- }
-
- //4. 原生搜索实现类
- NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder();
- nativeSearchQueryBuilder.withQuery(boolQuery);
-
- //10: 执行查询, 返回结果对象
- AggregatedPage<SkuInfo> aggregatedPage = esTemplate.queryForPage(nativeSearchQueryBuilder.build(), SkuInfo.
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |