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

设计企业网站机柏枫谈做网站都需要学什么

设计企业网站机,柏枫谈做网站都需要学什么,关于化妆品的网页设计,优质的seo快速排名优化前言 上篇文章讲了关于Elasticsearch的基本查询操作。接下来袁老师为大家带来Elasticsearch高级查询部分相关的内容。Elasticsearch是基于JSON提供完整的查询DSL#xff08;Domain Specific Language#xff1a;领域特定语言#xff09;来定义查询。因此#xff0c;我们有…前言 上篇文章讲了关于Elasticsearch的基本查询操作。接下来袁老师为大家带来Elasticsearch高级查询部分相关的内容。Elasticsearch是基于JSON提供完整的查询DSLDomain Specific Language领域特定语言来定义查询。因此我们有必要在专题模块来详细探讨Elasticsearch高级查询部分内容。 我们先来做个热身了解下这一小节学习的目标我将带领大家从以下五个模块来学习Elasticsearch的高级查询相关技术。 结果过滤查询条件过滤查询结果排序分页查询高亮显示 一. 结果过滤查询 默认情况下Elasticsearch在搜索的结果中会把文档中保存在_source的所有字段都返回。 如果我们只想获取其中的部分字段我们可以添加_source属性来进行过滤。 1.直接指定字段 演示示例 GET /yx/_search {_source: [title, price],query: {term: {price: 2699}} } 语法说明在查询结构中通过_source属性来指定查询结果集中需要保留哪些字段信息。 响应结果 {took: 90,timed_out: false,_shards: {total: 5,successful: 5,skipped: 0,failed: 0},hits: {total: 1,max_score: 1,hits: [{_index: yx,_type: goods,_id: lNC7KYUB35ub5htYEZMU,_score: 1,_source: {price: 2699,title: 小米手机}}]} } 运行上述代码响应结果见下 2.指定includes和excludes 我们也可以通过 属性 描述 includes 来指定想要显示的字段 excludes 来指定不想要显示的字段 注意二者都是可选的。 演示示例 GET /yx/_search {_source: {includes: [title, images]},query: {term: {price: 2699}} } 响应结果 {took: 148,timed_out: false,_shards: {total: 5,successful: 5,skipped: 0,failed: 0},hits: {total: 1,max_score: 1,hits: [{_index: yx,_type: goods,_id: lNC7KYUB35ub5htYEZMU,_score: 1,_source: {images: http://image.yx.com/12479122.jpg,title: 小米手机}}]} } 运行上述代码响应结果见下 下面的示例与上面的结果将是一样的 GET /yx/_search {_source: {excludes: [price]},query: {term: {price: 2699}} } 响应结果 {took: 6,timed_out: false,_shards: {total: 5,successful: 5,skipped: 0,failed: 0},hits: {total: 1,max_score: 1,hits: [{_index: yx,_type: goods,_id: lNC7KYUB35ub5htYEZMU,_score: 1,_source: {images: http://image.yx.com/12479122.jpg,title: 小米手机}}]} } 运行上述代码响应结果见下 二. filter过滤 Elasticsearch使用的查询语言DSL拥有一套查询组件这些组件可以以无限组合的方式进行搭配。这套组件可以在以下两种情况下使用过滤情况filtering context和查询情况query context。 如何选择查询与过滤通常的规则是使用查询query语句来进行全文搜索或者其它任何需要影响相关性得分的搜索。 除此以外的情况都使用过滤filters。 1.条件查询中进行过滤 所有的查询都会影响到文档的评分及排名。如果我们需要在查询结果中进行过滤并且不希望过滤条件影响评分那么就不要把过滤条件作为查询条件来用。而是使用filter方式 GET /yx/_search {query: {bool: {must: {match: {title: 小米手机}},filter: {range: {price: {gt: 2000.00, lt: 3800.00}}}}} } 响应结果 {took: 71,timed_out: false,_shards: {total: 5,successful: 5,skipped: 0,failed: 0},hits: {total: 2,max_score: 1.1143606,hits: [{_index: yx,_type: goods,_id: lNC7KYUB35ub5htYEZMU,_score: 1.1143606,_source: {title: 小米手机,images: http://image.yx.com/12479122.jpg,price: 2699}},{_index: yx,_type: goods,_id: 1,_score: 0.2876821,_source: {title: 大米手机,images: http://image.yx.com/12479122.jpg,price: 2899}}]} } 运行上述代码响应结果见下 2.无查询条件直接过滤 如果一次查询只有过滤没有查询条件不希望进行评分我们可以使用constant_score取代只有filter语句的bool查询。在性能上是完全相同的但对于提高查询简洁性和清晰度有很大帮助。 GET /yx/_search {query: {constant_score: {filter: {range: {price: {gt: 2000.00, lt: 3800.00}}}}} } 响应结果 {took: 16,timed_out: false,_shards: {total: 5,successful: 5,skipped: 0,failed: 0},hits: {total: 2,max_score: 1,hits: [{_index: yx,_type: goods,_id: lNC7KYUB35ub5htYEZMU,_score: 1,_source: {title: 小米手机,images: http://image.yx.com/12479122.jpg,price: 2699}},{_index: yx,_type: goods,_id: 1,_score: 1,_source: {title: 大米手机,images: http://image.yx.com/12479122.jpg,price: 2899}}]} } 运行上述代码响应结果见下 三. 结果排序 1.单字段排序 sort可以让我们按照不同的字段进行排序并且通过order属性指定排序的方式。 属性 描述 asc 升序排序 desc 降序排序 演示案例 GET /yx/_search {query: {match: {title: 小米手机}},sort: [{price: {order: desc}}] } 响应结果 {took: 31,timed_out: false,_shards: {total: 5,successful: 5,skipped: 0,failed: 0},hits: {total: 5,max_score: null,hits: [{_index: yx,_type: goods,_id: 4,_score: null,_source: {title: Apple手机,images: http://image.yx.com/12479122.jpg,price: 6899},sort: [6899]},{_index: yx,_type: goods,_id: 2,_score: null,_source: {title: IPhone手机,images: http://image.yx.com/12479122.jpg,price: 6299,stock: 200,saleable: true,subTitle: IPhone 15 Pro},sort: [6299]},{_index: yx,_type: goods,_id: 5,_score: null,_source: {title: 小米电视4A,images: http://images.com,price: 3999},sort: [3999]},{_index: yx,_type: goods,_id: 1,_score: null,_source: {title: 大米手机,images: http://image.yx.com/12479122.jpg,price: 2899},sort: [2899]},{_index: yx,_type: goods,_id: lNC7KYUB35ub5htYEZMU,_score: null,_source: {title: 小米手机,images: http://image.yx.com/12479122.jpg,price: 2699},sort: [2699]}]} } 2.多字段排序 假定我们想要结合使用price和_score得分进行查询并且匹配的结果首先按照价格排序然后再按照相关性得分降序排序 GET /yx/_search {query: {bool: {must: { match: { title: 小米手机 }},filter: {range: {price: {gt: 2000,lt: 3000}}}}},sort: [{ price: { order: desc }},{ _score: { order: desc }}] } 响应结果 {took: 10,timed_out: false,_shards: {total: 5,successful: 5,skipped: 0,failed: 0},hits: {total: 2,max_score: null,hits: [{_index: yx,_type: goods,_id: 1,_score: 0.2876821,_source: {title: 大米手机,images: http://image.yx.com/12479122.jpg,price: 2899},sort: [2899,0.2876821]},{_index: yx,_type: goods,_id: lNC7KYUB35ub5htYEZMU,_score: 1.1143606,_source: {title: 小米手机,images: http://image.yx.com/12479122.jpg,price: 2699},sort: [2699,1.1143606]}]} } 四. 分页查询 Elasticsearch中数据都存储在分片中当执行搜索时每个分片独立搜索后数据再经过整合返回。那么如果要实现分页查询该怎么办呢 Elasticsearch的分页与MySQL数据库非常相似都是指定两个值 属性 描述 from 目标数据的偏移值开始位置默认from为0 size 每页大小 演示案例 GET /yx/_search {query: {match_all: {}},sort: [{price: {order: desc}}],from: 1,size: 3 } 响应结果 {took: 17,timed_out: false,_shards: {total: 5,successful: 5,skipped: 0,failed: 0},hits: {total: 5,max_score: null,hits: [{_index: yx,_type: goods,_id: 2,_score: null,_source: {title: IPhone手机,images: http://image.yx.com/12479122.jpg,price: 6299,stock: 200,saleable: true,subTitle: IPhone 15 Pro},sort: [6299]},{_index: yx,_type: goods,_id: 3,_score: null,_source: {title: 小米电视4A,images: http://image.yx.com/12479122.jpg,price: 3899},sort: [3899]}]} } 五. 高亮显示 1.高亮显示原理 高亮显示的原理介绍见下 服务端搜索数据得到搜索结果。把搜索结果中搜索关键字都加上约定好的标签。前端页面提前写好标签的CSS样式即可高亮显示。 Elasticsearch中实现高亮的语法比较简单高亮显示语法格式见下 GET /索引库名/_search {query: {match: {字段: 字段值}},highlight: {pre_tags: 前置标签,post_tags: 后置标签,fields: {高亮字段名: {}}} } 在使用match查询的同时加上一个highlight属性。highlight属性提供以下属性 属性 描述 pre_tags 前置标签 post_tags 后置标签 fields 需要高亮的字段例如这里声明title字段需要高亮 2.高亮显示案例 演示案例 GET /yx/_search {query: {match: {title: 手机}},highlight: {pre_tags: span,post_tags: /span,fields: {title: {}}} } 响应结果 {took: 19,timed_out: false,_shards: {total: 5,successful: 5,skipped: 0,failed: 0},hits: {total: 4,max_score: 0.2876821,hits: [{_index: yx,_type: goods,_id: 1,_score: 0.2876821,_source: {title: 大米手机,images: http://image.yx.com/12479122.jpg,price: 2899},highlight: {title: [大米span手机/span]}},{_index: yx,_type: goods,_id: lNC7KYUB35ub5htYEZMU,_score: 0.13353139,_source: {title: 小米手机,images: http://image.yx.com/12479122.jpg,price: 2699},highlight: {title: [小米span手机/span]}},{_index: yx,_type: goods,_id: 2,_score: 0.13353139,_source: {title: IPhone手机,images: http://image.yx.com/12479122.jpg,price: 6299,stock: 200,saleable: true,subTitle: IPhone 15 Pro},highlight: {title: [IPhonespan手机/span]}},{_index: yx,_type: goods,_id: 4,_score: 0.13353139,_source: {title: Apple手机,images: http://image.yx.com/12479122.jpg,price: 6899},highlight: {title: [Applespan手机/span]}}]} } 运行上述代码响应结果见下 六. 结语 关于Elasticsearch高级查询篇相关的内容我们就给大家介绍完了来复习回顾下这一章节的主要内容。本文从结果过滤查询、结果排序、分页查询、检索查询、关键字查询、高亮显示、过滤查询等几个方面通过实例讲解了Elasticsearch的高级查询。如果还没有掌握的小伙伴一定要通过文章中大量的案例来进行实操演练从而巩固这一部分知识。下一小节我们将为大家带来Elasticsearch中聚合操作相关的内容。 今天的内容就分享到这里吧。关注「袁庭新」干货天天都不断
http://www.pierceye.com/news/532478/

相关文章:

  • 网站搭建规划建设网站方案ppt
  • 手机上哪个网站免费wordpress空间
  • 网站改版上线西安网站群搭建
  • 百度竞价培训青岛网站建设和优化
  • 网站建设 收费明细wordpress 动漫 主题下载
  • 物流网站怎么做推广wordpress插件ERP
  • 网站开发市场价手机改ip地址软件免费
  • 上海网站建设zj kt网站开发网络公司
  • 郑州平台网站建设福田欧曼图片
  • 企业网站策划应该怎么做杭州萧山网站建设
  • 南昌网站建设如何网站建设综合训练的实验目的
  • 连锁酒店网站建设软件开发分为哪几个步骤
  • 网站订单模板怎么可以自己做网站被百度收到
  • 网上做物理题赚钱的网站肥城住房和城乡建设局网站
  • 傻瓜式网站源码比较好的网站建设品牌升级
  • 买东西的网站德阳机械加工网
  • 企业网站建设的基本标准是广告公司运作模式
  • 做推广网站的文章电动汽车排名前十名
  • 宜州网站建设服务网页生成长图 iphone
  • 网站关键词seo费用广告设计教学大纲
  • 网站开发视频 百度云自己做网站卖东西
  • 二级网站建设费用品牌广告投放
  • 西宁做网站君博认同门户网站建设实施方案
  • 外贸公司做网站该去哪里找萝岗手机网站建设
  • 网站建设的商业目的惠州网站建设培训
  • 一个网站备案多个域名吗中国建设工程信息网官网入口
  • 广告网站设计哪家快做网站一般注册哪几类商标
  • 学网站建设有前途吗网站对话窗口怎么做
  • 云南昆明做网站wordpress备份文件
  • 连云港市网站建设汕头制作手机网站