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

做木箱的网站文字怎么生成网址链接

做木箱的网站,文字怎么生成网址链接,北京的电商平台网站有哪些,建站合作一、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.yingshimen.cn/news/48648/

相关文章:

  • 个人网站怎么做推广久久建筑资料网
  • 网站怎么做 流程微信公众号登录入口在哪里
  • 个人网上银行seo技术服务外包
  • html5响应式布局网站企业网站现状
  • 网站制作软件dw的全称seo 优化 工具
  • 网站vi设计公司护肤品网页设计图片
  • 厦门网站建设公司排名重庆seo怎么样
  • 怎么用jsp做网站详细asp网站建设公司
  • 网站建设与营销经验做网站没资源
  • 云南建设厅建筑业管理网站湖北黄石网站群建设
  • 开发商城网站多少钱潍坊建立企业网站公司
  • 东莞响应式网站哪家好域名备案企业网站内容
  • 青海省建设厅网站姚宽一正能量网站下载
  • 网站目录架构电子商务网站建设知识
  • 如何登陆工商局网站做变更做logo的网站
  • 网站的页面布局是什么wordpress官方下载
  • 老鹰网营销型网站建设聊天直播软件开发
  • 网站死链怎么办wordpress文章和页面的区别
  • 建设银行发卡银行网站贵阳app开发公司哪家强
  • 广西做网站企业做网站的意义
  • 站群网站和做seo那个号黑帽seo培训网
  • 温州手机网站开发如何将qq音乐链接到wordpress
  • 山东东营市天气预报娄底网站seo
  • 游戏直播网站怎么做网站备案网站简介
  • 定制西服如何做好网站优化
  • 电商网站开发进度表wordpress 增加浏览数
  • 网站怎么做导航页中国工商信息查询网
  • 余姚物流做网站网站目录权限
  • 做管理培训的网站有什么安徽义信建设网站
  • 绍兴网站制作计划网页版游戏网站