品优购-关键字搜索 4.1 需求分析 打开搜索页面,在搜索框输入要搜索的关键字,点击搜索按钮即可进行搜索,展示搜索结果 4.1 后端代码4.1.1 服务接口层 (1)创建 pinyougou-search-interface 模块(搜索服务接口),依赖 pinyougou-pojo (2)创建 com.pinyougou.search.service 包,创建业务接口

public  interface  ItemSearchService  {
 
/**
 
*搜索
 
*@param  keywords
 
*@return
 
*/
 
public  Map<String,Object>  search(Map  searchMap);
 
}

4.1.1 服务实现层 (1)创建 war 工程 pinyougou-search-service ,引入 pinyougou-search-interface spring dubbox 等相关依赖(参加其它服务工程)Tomcat 运行端口 9004 (2)添加 web.xml (参加其它服务工程) (3)在 src/main/resources/spring 下 applicationContext-service.xml (参见其它服务工程) dubbo 端口 20884 (4)在 src/main/resources/spring 下创建 spring 配置文件 applicationContext-solr.xml(同 demo 工程) (5)编写服务实现类 ItemSearchServiceImpl.java

@Service(timeout=3000)
 
 
public  class  ItemSearchServiceImpl  implements  ItemSearchService{
@Autowired
 
 
private  SolrTemplate  solrTemplate;
 
 
 
 
@Override
 
 
public  Map<String,  Object>  search(Map  searchMap)  { Map<String,Object>  map=new  HashMap<>();
Query  query=new  SimpleQuery();
 
//添加查询条件Criteria  criteria=new
Criteria("item_keywords").is(searchMap.get("keywords"));
 
 
query.addCriteria(criteria);
 
 
ScoredPage<TbItem>  page  =  solrTemplate.queryForPage(query,  TbItem.class); map.put("rows",  page.getContent());
return  map;
 
 
}
 
 
}

4.1.1 控制层 (1)创建 pinyougou-search-web 工程 ,引入依赖(参见其它 web 模块),tomcat 运行端口 9104 (2)添加 web.xml (参加其它 web 工程) (3)添加配置文件 (内容参加其它 web 工程) (4)创建包 com.pinyougou.search.controller 编写控制器类

@RestController
@RequestMapping("/itemsearch")
 
public  class  ItemSearchController  { @Reference
private  ItemSearchService  itemSearchService;
 
 
 
@RequestMapping("/search")
 
public  Map<String,  Object>  search(@RequestBody  Map  searchMap  ){
 
return    itemSearchService.search(searchMap);
 
}
 
}