当前位置: 首页 > news >正文

网上网站代码可以下载吗深圳装饰企业前50强

网上网站代码可以下载吗,深圳装饰企业前50强,网站建设专员招聘,提供设计的的网站一、Spring Data Elasticsearch Spring Data Elasticsearch 简介 Spring Data Elasticsearch是Spring提供的一种以Spring Data风格来操作数据存储的方式#xff0c;它可以避免编写大量的样板代码。 常用注解 常用注解说明如下#xff1a; 注解名称 作用 参数说明 Docu… 一、Spring Data Elasticsearch Spring Data Elasticsearch 简介 Spring Data Elasticsearch是Spring提供的一种以Spring Data风格来操作数据存储的方式它可以避免编写大量的样板代码。 常用注解 常用注解说明如下 注解名称 作用 参数说明 Document 用于标识映射到Elasticsearch文档上的领域对象 indexName索引库的名字MySQL中数据库的概念 Setting ES的配置注解 shards默认分片数 replicas默认副本数量 Id 用于标识文档的ID文档可以认为是MySQL中表行的概念 无参数 Field 用于标识文档中的字段可以认为是MySQL中列的概念 type文档中字段的类型 index是否建立倒排索引 store是否进行存储 analyzer分词器的名称 其中常用的FieldType类型有如下几种 public enum FieldType {Auto(auto), //自动判断字段类型Text(text), //会进行分词并建了索引的字符类型Keyword(keyword), //不会进行分词建立索引的类型Long(long), //Integer(integer), //Short(short), //Byte(byte), //Double(double), //Float(float), //Date(date), //Boolean(boolean), //Object(object), //Nested(nested), //嵌套对象类型Ip(ip), // } Spring Data方式的数据操作 继承ElasticsearchRepository接口可以获得常用的数据操作方法Ctrl F12 可以使用衍生查询在接口中直接指定查询方法名称便可查询无需进行实现如商品表中有商品名称、标题和关键字直接定义以下查询就可以对这三个字段进行全文搜索。 /*** description 商品ES操作类*/ public interface EsProductRepository extends ElasticsearchRepositoryEsProduct, Long {/*** 搜索查询** param name 商品名称* param subTitle 商品标题* param keywords 商品关键字* param page 分页信息* return*/PageEsProduct findByNameOrSubTitleOrKeywords(String name, String subTitle, String keywords, Pageable page); } 在编写衍生查询方法时IDEA会提示对应字段更多关键字可以参考衍生查询关键字对照表 衍生查询关键字对照表 Keyword Sample Elasticsearch Query String And findByNameAndPrice { query : { bool : { must : [ { query_string : { query : ?, fields : [ name ] } }, { query_string : { query : ?, fields : [ price ] } } ] } }} Or findByNameOrPrice { query : { bool : { should : [ { query_string : { query : ?, fields : [ name ] } }, { query_string : { query : ?, fields : [ price ] } } ] } }} Is findByName { query : { bool : { must : [ { query_string : { query : ?, fields : [ name ] } } ] } }} Not findByNameNot { query : { bool : { must_not : [ { query_string : { query : ?, fields : [ name ] } } ] } }} Between findByPriceBetween { query : { bool : { must : [ {range : {price : {from : ?, to : ?, include_lower : true, include_upper : true } } } ] } }} LessThan findByPriceLessThan { query : { bool : { must : [ {range : {price : {from : null, to : ?, include_lower : true, include_upper : false } } } ] } }} LessThanEqual findByPriceLessThanEqual { query : { bool : { must : [ {range : {price : {from : null, to : ?, include_lower : true, include_upper : true } } } ] } }} GreaterThan findByPriceGreaterThan { query : { bool : { must : [ {range : {price : {from : ?, to : null, include_lower : false, include_upper : true } } } ] } }} GreaterThanEqual findByPriceGreaterThan { query : { bool : { must : [ {range : {price : {from : ?, to : null, include_lower : true, include_upper : true } } } ] } }} Before findByPriceBefore { query : { bool : { must : [ {range : {price : {from : null, to : ?, include_lower : true, include_upper : true } } } ] } }} After findByPriceAfter { query : { bool : { must : [ {range : {price : {from : ?, to : null, include_lower : true, include_upper : true } } } ] } }} Like findByNameLike { query : { bool : { must : [ { query_string : { query : ?*, fields : [ name ] }, analyze_wildcard: true } ] } }} StartingWith findByNameStartingWith { query : { bool : { must : [ { query_string : { query : ?*, fields : [ name ] }, analyze_wildcard: true } ] } }} EndingWith findByNameEndingWith { query : { bool : { must : [ { query_string : { query : *?, fields : [ name ] }, analyze_wildcard: true } ] } }} Contains/Containing findByNameContaining { query : { bool : { must : [ { query_string : { query : ?, fields : [ name ] }, analyze_wildcard: true } ] } }} In (when annotated as FieldType.Keyword) findByNameIn(Collectionnames) { query : { bool : { must : [ {bool : {must : [ {terms : {name : [?,?]}} ] } } ] } }} In findByNameIn(Collectionnames) { query: {bool: {must: [{query_string:{query: ? ?, fields: [name]}}]}}} NotIn (when annotated as FieldType.Keyword) findByNameNotIn(Collectionnames) { query : { bool : { must : [ {bool : {must_not : [ {terms : {name : [?,?]}} ] } } ] } }} NotIn findByNameNotIn(Collectionnames) {query: {bool: {must: [{query_string: {query: NOT(? ?), fields: [name]}}]}}} True findByAvailableTrue { query : { bool : { must : [ { query_string : { query : true, fields : [ available ] } } ] } }} False findByAvailableFalse { query : { bool : { must : [ { query_string : { query : false, fields : [ available ] } } ] } }} OrderBy findByAvailableTrueOrderByNameDesc { query : { bool : { must : [ { query_string : { query : true, fields : [ available ] } } ] } }, sort:[{name:{order:desc}}] } Exists findByNameExists {query:{bool:{must:[{exists:{field:name}}]}}} IsNull findByNameIsNull {query:{bool:{must_not:[{exists:{field:name}}]}}} IsNotNull findByNameIsNotNull {query:{bool:{must:[{exists:{field:name}}]}}} IsEmpty findByNameIsEmpty {query:{bool:{must:[{bool:{must:[{exists:{field:name}}],must_not:[{wildcard:{name:{wildcard:*}}}]}}]}}} IsNotEmpty findByNameIsNotEmpty {query:{bool:{must:[{wildcard:{name:{wildcard:*}}}]}}} 通过Query注解可以使用Elasticsearch的原生DSL语句进行查询 /*** description 商品ES操作类*/ public interface EsProductRepository extends ElasticsearchRepositoryEsProduct, Long {Query({bool : {must : {field : {name : ? 0}}}})PageEsProduct findByName(String name, Pageable pageable); } 二、项目使用表结构说明 pms_product商品信息表pms_product_attribute商品属性参数表pms_product_attribute_value存储产品参数值的表。 三、整合Elasticsearch实现商品搜索 整合依赖及配置 在pom.xml中添加相关依赖 !--Elasticsearch相关依赖-- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-elasticsearch/artifactId /dependency 修改application.yml配置文件在spring节点下添加Elasticsearch相关配置 spring:data:elasticsearch:repositories:enabled: true # 开启ES仓库配置自动为仓库接口生成实现类elasticsearch:uris: http://localhost:9200 # ES的连接地址及端口号 运行后可以验证一下  实现商品搜索功能 添加商品文档对象EsProduct不需要中文分词的字段设置成Keyword类型需要中文分词的设置成Text类型并设置分词器为ik_max_word /*** description 搜索商品的信息*/ Data EqualsAndHashCode Document(indexName pms) Setting(shards 1,replicas 0) public class EsProduct implements Serializable {private static final long serialVersionUID -1L;Idprivate Long id;Field(type FieldType.Keyword)private String productSn;private Long brandId;Field(type FieldType.Keyword)private String brandName;private Long productCategoryId;Field(type FieldType.Keyword)private String productCategoryName;private String pic;Field(analyzer ik_max_word,type FieldType.Text)private String name;Field(analyzer ik_max_word,type FieldType.Text)private String subTitle;Field(analyzer ik_max_word,type FieldType.Text)private String keywords;private BigDecimal price;private Integer sale;private Integer newStatus;private Integer recommandStatus;private Integer stock;private Integer promotionType;private Integer sort;Field(type FieldType.Nested)private ListEsProductAttributeValue attrValueList; } 继承ElasticsearchRepository接口这样就拥有了一些基本的Elasticsearch数据操作方法同时定义了一个衍生查询方法 /*** description 商品ES操作类*/ public interface EsProductRepository extends ElasticsearchRepositoryEsProduct, Long {/*** 搜索查询** param name 商品名称* param subTitle 商品标题* param keywords 商品关键字* param page 分页信息* return*/PageEsProduct findByNameOrSubTitleOrKeywords(String name, String subTitle, String keywords, Pageable page);} 添加EsProductService定义好ES的操作方法 /*** description 商品搜索管理Service*/ public interface EsProductService {/*** 从数据库中导入所有商品到ES*/int importAll();/*** 根据id删除商品*/void delete(Long id);/*** 根据id创建商品*/EsProduct create(Long id);/*** 批量删除商品*/void delete(ListLong ids);/*** 根据关键字搜索名称或者副标题*/PageEsProduct search(String keyword, Integer pageNum, Integer pageSize);} 添加EsProductService接口的实现类EsProductServiceImpl /*** description 搜索商品管理Service实现类*/ Service public class EsProductServiceImpl implements EsProductService {private static final Logger LOGGER LoggerFactory.getLogger(EsProductServiceImpl.class);Autowiredprivate EsProductDao productDao;Autowiredprivate EsProductRepository productRepository;Overridepublic int importAll() {ListEsProduct esProductList productDao.getAllEsProductList(null);IterableEsProduct esProductIterable productRepository.saveAll(esProductList);IteratorEsProduct iterator esProductIterable.iterator();int result 0;while (iterator.hasNext()) {result;iterator.next();}return result;}Overridepublic void delete(Long id) {productRepository.deleteById(id);}Overridepublic EsProduct create(Long id) {EsProduct result null;ListEsProduct esProductList productDao.getAllEsProductList(id);if (esProductList.size() 0) {EsProduct esProduct esProductList.get(0);result productRepository.save(esProduct);}return result;}Overridepublic void delete(ListLong ids) {if (!CollectionUtils.isEmpty(ids)) {ListEsProduct esProductList new ArrayList();for (Long id : ids) {EsProduct esProduct new EsProduct();esProduct.setId(id);esProductList.add(esProduct);}productRepository.deleteAll(esProductList);}}Overridepublic PageEsProduct search(String keyword, Integer pageNum, Integer pageSize) {Pageable pageable PageRequest.of(pageNum, pageSize);return productRepository.findByNameOrSubTitleOrKeywords(keyword, keyword, keyword, pageable);}} 添加EsProductController定义接口。 /*** description 搜索商品管理Controller*/ Controller Api(tags EsProductController) Tag(name EsProductController, description 搜索商品管理) RequestMapping(/esProduct) public class EsProductController {Autowiredprivate EsProductService esProductService;ApiOperation(value 导入所有数据库中商品到ES)RequestMapping(value /importAll, method RequestMethod.POST)ResponseBodypublic CommonResultInteger importAllList() {int count esProductService.importAll();return CommonResult.success(count);}ApiOperation(value 根据id删除商品)RequestMapping(value /delete/{id}, method RequestMethod.GET)ResponseBodypublic CommonResultObject delete(PathVariable Long id) {esProductService.delete(id);return CommonResult.success(null);}ApiOperation(value 根据id批量删除商品)RequestMapping(value /delete/batch, method RequestMethod.POST)ResponseBodypublic CommonResultObject delete(RequestParam(ids) ListLong ids) {esProductService.delete(ids);return CommonResult.success(null);}ApiOperation(value 根据id创建商品)RequestMapping(value /create/{id}, method RequestMethod.POST)ResponseBodypublic CommonResultEsProduct create(PathVariable Long id) {EsProduct esProduct esProductService.create(id);if (esProduct ! null) {return CommonResult.success(esProduct);} else {return CommonResult.failed();}}ApiOperation(value 简单搜索)RequestMapping(value /search/simple, method RequestMethod.GET)ResponseBodypublic CommonResultCommonPageEsProduct search(RequestParam(required false) String keyword,RequestParam(required false, defaultValue 0) Integer pageNum,RequestParam(required false, defaultValue 5) Integer pageSize) {PageEsProduct esProductPage esProductService.search(keyword, pageNum, pageSize);return CommonResult.success(CommonPage.restPage(esProductPage));} } 商品导入与搜索演示 运行项目访问Swagger API文档访问地址http://localhost:8080/swagger-ui/ 通过/esProduct/importAll接口将数据库中的商品数据导入到Elasticsearch中 通过/esProduct/search/simple接口进行商品搜索。 得到的结果是
http://www.eeditor.cn/news/125790/

相关文章:

  • 网站优化链接潍坊外贸网站制作
  • 有没有做ppt好看的免费网站深圳ppt设计公司
  • 北京平台网站建设哪家好php网站的特点
  • 20个外国平面设计网站建设网站都需要注意什么
  • 网站建好后广告是不是需要贵阳网站建设制作方法
  • 在百度上做网站推广效果怎么样男女一夜做受视频最新网站
  • 徐州网站制作苏视有什么好的加盟店项目
  • 网站建设技术服务公司购物小程序开发公司
  • 佛山外贸网站建设价位wordpress本地配置
  • 郑州网站建设 郑州网站制作福州医社保增减员在什么网站做
  • 英文网站建设 江门制作企业网站页面多少钱
  • 女孩做网站工作辛苦吗谷歌seo是啥
  • 网站建设图书馆管理系统WordPress添加CA
  • 教人做饮料的网站企业网络搭建毕业设计
  • 江东网站制作怎么做好邯郸网站建设
  • 网站制作技术人员低价网站建设哪个好
  • 网站速度对seo的影响全国建设工程造价管理系统
  • 做羊水亲子鉴定网站邢台市有几个区几个县
  • 站长查询站长工具网页编程入门
  • 开发一平方多少钱秦皇岛网络优化排名
  • 湖南专业外贸建站公司网站建设客户确认单
  • 蚌埠公司做网站公司名称大全免费取名
  • 阿里云服务器可以做几个网站电影资源网站建设
  • 网站开发专业课程软件工程师发展前景
  • 成功案例展示网站dedecms做网站教程
  • 做网站怎么配电脑低价网站建设哪家更好
  • 阳江网站制作建设医疗器械监督管理条例2021
  • 官方网站建设制作平台金华建设银行网站
  • 建专业外贸网站深圳网站建设.-方维网络
  • 做网站的技术体系先做网站再备案吗