首页 > 其他分享 >全文检索工具:第一章:Spring-data-elasticSearch搜索

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

时间:2023-01-03 16:03:14浏览次数:59  
标签:return String int Spring value 全文检索 elasticSearch CommonResult public

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

  <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

标签:return,String,int,Spring,value,全文检索,elasticSearch,CommonResult,public
From: https://www.cnblogs.com/wangchuanxinshi/p/17022490.html

相关文章

  • springboot出现MaxUploadSizeExceededException 异常
    写springboot项目上传图片遇到MaxUploadSizeExceededException异常,找到一篇文章完美解决SpringBoot默认上传文件大小限制是1MB,默认单次请求大小是10MB,超出大小会跑......
  • 升级 spring 3.0 前要准备的一些工作
    占位参考:1,重点Url/https://www.51cto.com/article/741992.html 2,https://www.cnblogs.com/ilovejaney/p/16931780.html3,javaxhttps://www.51cto.com/article/74......
  • Failed to configure a DataSource: 'url' attribute is not specified spring boot3
     springboot的配置文件名由application.yml改为bootstrap.yml或者bootstrap.properties报错:FailedtoconfigureaDataSource:'url'attributeisnotspecifiedand......
  • SpringBoot 批量大文件上传下载
    ​ 这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数下面直接贴代码吧,一些难懂的我大部分都加上......
  • SpringMVC 批量大文件上传下载
    ​ javaweb上传文件上传文件的jsp中的部分上传文件同样可以使用form表单向后端发请求,也可以使用ajax向后端发请求    1.通过form表单向后端发送请求     ......
  • spring项目中添加@Transactional注解后出现NoSuchBeanDefinitionException异常的解决
    https://blog.csdn.net/qq_37059367/article/details/83145779数据库配置文件中修改配置文件里这一句<tx:annotation-driventransaction-manager="transactionManager"/......
  • spring 基础知识-- IOC 和 DI 的配置和使用。
    目录​​一、基本概念​​​​二、Spring核心概念 ​​​​1、问题分析​​​​2、IOC、IOC容器、Bean、DI​​​​3、IOC入门案例​​​​4、DI入门案例​​​​三、IO......
  • Spring 中最常用的 11 个扩展点
    转自https://mp.weixin.qq.com/s/CFjHtLbD6cAjfDhGJHtYwA 之前给大家写过一篇Bean的生命周期,非常受欢迎,里面其实介绍了Bean生命周期中所有的扩展点。今天给大家带......
  • ElasticSearch之Head插件的安装及使用
    3.Head插件上一节说到ES支持​​Restful​​请求,但是那样的话对于我们开发者来说过于麻烦,并且不够直观,我们一般都会使用一个图形化界面来辅助,比如我们用mysql的时候,会用nav......
  • ElasticSearch之简介及快速入门
    1.ElasticSearch简介1.1什么是ElasticSearch?实时的分布式搜索和分析引擎。基于​​Lucene​​的搜索服务器。提供了一个分布式多用户能力的全文搜索引擎基于​​RESTfulw......