全文检索工具:第一章:Spring-data-elasticSearch搜索

快速上手:导入删除查询
引入依赖:

  <dependency>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
                </dependency>

控制层:

 @Autowired
        private EsProductService esProductService;
     
        @ApiOperation(value = "简单搜索:根据关键字,品牌名称或者产品名称,产品编号,副标题搜索(字符串:Text类型最大拆分)")
        @RequestMapping(value = "/search/keyword", method = RequestMethod.GET)
        @ResponseBody
        public CommonResult<CommonPage<EsProduct>> searchKeyword(@RequestParam(required = false) String keyword,
                                                                @RequestParam(required = false, defaultValue = "0") Integer pageNum,
                                                                @RequestParam(required = false, defaultValue = "5") Integer pageSize) {
            Page<EsProduct> esProductPage = esProductService.searchKeyword(keyword, pageNum, pageSize);
            return CommonResult.success(CommonPage.restPage(esProductPage));
        }
     
        @ApiOperation(value = "删除索引库")
        @ApiImplicitParam(name = "indexName", value = "索引库名称",
                defaultValue = "product", paramType = "query", dataType = "String")
        @RequestMapping(value = "/deleteAll", method = RequestMethod.GET)
        @ResponseBody
        public CommonResult<Object> deleteAll(String indexName) {
            int i = esProductService.deleteAll(indexName);
            return CommonResult.success(i);
        }
     
        @ApiOperation(value = "导入所有产品信息数据库中商品到ES")
        @RequestMapping(value = "/importAll", method = RequestMethod.GET)
        @ResponseBody
        public CommonResult<Integer> importAllList() {
            int count = esProductService.importAll();
            return CommonResult.success(count);
        }

service接口:


    public interface EsProductService {
        /**
         * 从数据库中导入所有商品到ES
         */
        int importAll();
        /**
         * 根据关键字,品牌名称或者产品名称搜索(字符串:Text类型最大拆分)
         * @param keyword
         * @param pageNum
         * @param pageSize
         * @return
         */
        Page<EsProduct> searchKeyword(String keyword, Integer pageNum, Integer pageSize);
     
     
        /**
         * 删除索引库
         * @return
         */
        int deleteAll(String indexName);
    }

业务实现类:

  @Service
    public class EsProductServiceImpl implements EsProductService {
     
        private static final Logger LOGGER = LoggerFactory.getLogger(EsProductServiceImpl.class);
        @Autowired
        private EsProductDao productDao;
        @Autowired
        private EsProductRepository productRepository;
        @Autowired
        private ElasticsearchTemplate elasticsearchTemplate;
     
        @Override
        public int importAll() {
            List<EsProduct> esProductList = productDao.getAllEsProductList(null);
            Iterable<EsProduct> esProductIterable = productRepository.saveAll(esProductList);
            Iterator<EsProduct> iterator = esProductIterable.iterator();
            int result = 0;
            while (iterator.hasNext()) {
                result++;
                iterator.next();
            }
            return result;
        }
     
        /**
         * 根据关键字,品牌名称或者产品名称,产品编号搜索(字符串:Text类型最大拆分)

更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/120482353

posted @ 2023-01-03 15:50  忘川信使  阅读(29)  评论(0编辑  收藏  举报