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

网站基本设置湖南送变电建设公司 网站

网站基本设置,湖南送变电建设公司 网站,黑龙江省道路建设网站,做网站需要用到哪些编程知识概念 Scripting是Elasticsearch支持的一种专门用于复杂场景下支持自定义编程的强大的脚本功能#xff0c;ES支持多种脚本语言#xff0c;如painless#xff0c;其语法类似于Java,也有注释、关键字、类型、变量、函数等#xff0c;其就要相对于其他脚本高出几倍的性能…概念 Scripting是Elasticsearch支持的一种专门用于复杂场景下支持自定义编程的强大的脚本功能ES支持多种脚本语言如painless其语法类似于Java,也有注释、关键字、类型、变量、函数等其就要相对于其他脚本高出几倍的性能并且安全可靠可以用于内联和存储脚本。 支持的语言 groovyES 1.4.x-5.0的默认脚本语言 painlessJavaEE使用java语言开发.Net使用C#/F#语言开发Flutter使用Dart语言开发同样ES 5.0版本后的Scripting使用的语言默认就是painlesspainless是一种专门用于Elasticsearch的简单,用于内联和存储脚本是ES 5.0的默认脚本语言类似于Java,也有注释、关键字、类型、变量、函数等是一种安全的脚本语言。并且是Elasticsearch的默认脚本语言。 其他 expression每个文档的开销较低表达式的作用更多可以非常快速地执行甚至比编写native脚本还要快支持javascript语法的子集单个表达式。缺点只能访问数字布尔值日期和geo_point字段存储的字段不可用 mustache提供模板参数化查询 特点 语法简单学习成本低 灵活度高可编程能力强 性能相较于其他脚本语言很高 安全性好 独立语言虽然易学但仍需单独学习 相较于DSL性能低 不适用于复杂的业务场景 应用场景 各种复杂的应用场景如自定义评分、自定义聚合查询等。 正则: 早先某些版本正则表达式默认情况下处于禁用模式因为它绕过了painless的针对长时间运行和占用内存脚本的保护机制。而且有深度对战行为。如果需要开启正则需要配置script.painless.regex.enabled: true 注意通常正则的使用范围比较小应用范围基本限制在数据量比较小和并发量比较小的应用场景下。 doc[field].value和params[_source][field] 理解之间的区别是很重要的doc[field].value和params[_source][field]。首先使用doc关键字将导致该字段的条件被加载到内存缓存这将导致更快的执行但更多的内存消耗。此外doc[...]符号只允许简单类型不能返回一个复杂类型(JSON对象或者nested类型)只有在非分析或单个词条的基础上有意义。但是doc如果可能使用仍然是从文档访问值的推荐方式因为_source每次使用时都必须加载并解析。使用_source非常缓慢### 代码示例 POST product/_update/2 {script: {source: ctx._source.price-1} } POST product/_update/2 {script: {source: ctx._source.price-ctx._version} } #简写 POST product/_update/2 {script: ctx._source.price-1 } ​ # Scripting的CRUD POST _reindex {source: {index: product},dest: {index: product2} } ​ # 举个例子华为出了新款 新增了tag 叫做“遥遥领先” POST product/_update/6 {script: {lang: painless,source: ctx._source.tags.add(遥遥领先)} } #upsert update insert POST product/_update/3 {script: {lang: painless,source: ctx._source.price 100},upsert: {name : huaweimate60,desc : yyds,price : 1999} } ​ #GET查询 painless expression 应用于促销打折计算 GET product/_search {script_fields: {my_price: {script: {lang: expression,source: doc[price].value* 0.9}}} } GET product/_search {script_fields: {my_price: {script: {lang: painless,source: doc[price].value* 0.9}}} } #参数化 POST product/_update/2 {script: {lang: painless,source: ctx._source.tags.add(params.tag_name),params: {tag_name:无线秒充}} } ​ GET product/_search {script_fields: {my_price: {script: {lang: painless,source: doc[price].value* params.num,params: {num: 9 }}}} } #多个折扣 GET product/_search {script_fields: {price: {script: {lang: painless,source: doc[price].value}},discount_price: {script: {lang: painless,source: [doc[price].value* params.discount_8,doc[price].value* params.discount_7,doc[price].value* params.discount_6,doc[price].value* params.discount_5],params: {discount_8: 0.8,discount_7: 0.7,discount_6: 0.6,discount_5: 0.5}}}} } ​ # Stored scripts   scripts模板 # /_scripts/{id} POST _scripts/calculate_discount {script: {lang: painless,source: doc.price.value * params.discount} } #查看 GET _scripts/calculate_discount GET product/_search {script_fields: {price: {script: {lang: painless,source: doc[price].value}},discount_fields: {script: {id: calculate_discount,params: {discount:0.8}}}} } ​ #Scripting的函数式编程 GET product/_search GET product/_doc/1 POST product/_update/1 {script: {lang: painless,source: ctx._source.tags.add(params.tag_name),params: {tag_name:无线秒充}} } ​ POST product/_update/1 {script: {lang: painless,source: ctx._source.tags.add(params.tag_name);ctx._source.price-100;,params: {tag_name:无线秒充1}} } ​ #正则like %小米% /[\s\S]*小米[\s\S]*/ POST product/_update/3 {script: {lang: painless,source: if(ctx._source.name ~ /[\s\S]*小米[\s\S]*/) {ctx._source.name***|}else{ctx.opnoop}} } #/\d{4}-\d{2}-\d{2}[\s\S]*/ GET product/_doc/1 POST product/_update/1 {script: {lang: painless,source: if(ctx._source.createtime ~ /\d{4}-\d{2}-\d{2}[\s\S]*/) {ctx._source.name|***}else{ctx.opnoop}} } #统计所有价格小于1000的商品的tag的数量 不考虑重复的情况 GET product/_search {query: {constant_score: {filter: {range: {price: {lte: 1000}}}}},aggs: {tag_agg: {sum: {script: {lang: painless,source: int total 0;for(int i 0; i doc[tags.keyword].length; i){total;}return total;}}}} } ​ # 对于一些早期版本 script.painless.regex.enabled: true # doc[field].value 和 params[_source][field] ​ #批量新增 PUT test_index/_bulk?refresh {index:{_id:1}} {ajbh: 12345,ajmc: 立案案件,lasj: 2020/05/21 13:25:23,jsbax_sjjh2_xz_ryjbxx_cleaning: [{XM: 张三,NL: 30,SF: 男},{XM: 李四,NL: 31,SF: 男},{XM: 王五,NL: 30,SF: 女},{XM: 赵六,NL: 23,SF: 男}]} {index:{_id:2}} {ajbh: 563245,ajmc: 结案案件,lasj: 2020/05/21 13:25:23,jsbax_sjjh2_xz_ryjbxx_cleaning: [{XM: 张三2,NL: 30,SF: 男},{XM: 李四2,NL: 31,SF: 男},{XM: 王五2,NL: 30,SF: 女},{XM: 赵六2,NL: 23,SF: 女}]} {index:{_id:3}} {ajbh: 12345,ajmc: 立案案件,lasj: 2020/05/21 13:25:23,jsbax_sjjh2_xz_ryjbxx_cleaning: [{XM: 张三3,NL: 30,SF: 男},{XM: 李四3,NL: 31,SF: 男},{XM: 王五3,NL: 30,SF: 女},{XM: 赵六3,NL: 23,SF: 男}]} ​ #统计男性嫌疑人的数量 GET test_index/_search GET product/_search #Object Nested GET /test_index/_search {aggs: {sum_person: {sum: {script: {lang: painless,source: int total 0;for(int i 0;i params[_source][jsbax_sjjh2_xz_ryjbxx_cleaning].length;i){if(params[_source][jsbax_sjjh2_xz_ryjbxx_cleaning][i][SF]男){total1;}}return total;}}}} }
http://www.pierceye.com/news/937638/

相关文章:

  • 国外h5网站模板下载长沙快速建站模板
  • 湛江网站建设方案找工程项目
  • 孝感住房和城乡建设部网站深圳市做网站公司
  • 网站开发环境配置做一个信息网站多少钱
  • 小企业网站建设的小知识wordpress显示关闭评论框
  • vue.js 可以做网站吗注册一个公司一年费用
  • 软件开发网站策划方案百度网站怎么用
  • 网站分页符素材wordpress自定义密码
  • 建设银行公积金预约网站首页大宗商品交易平台政策
  • 口碑好的秦皇岛网站建设哪里有沙漠网站建设
  • 推荐外贸网站建设的公司聊城做网站费用价格
  • 在线设计的网站android 网站开发
  • 河北省建设厅网站官网织梦手机网站制作
  • 网站建设管理物联网的发展前景
  • 广州网站建设外贸做vip视频网站赚钱吗
  • 模板网建站山西 网站制作
  • 网站建设捌金手指花总二七网页制作与设计的内容
  • 阿凡达网站建设网网络营销包括什么内容
  • 网站设计师是什么做的好的国外网站
  • 19年做网站织梦cms源码
  • 做定制网站怎么样原创网站设计
  • 淮安网站建设 淮安网站制作反向代理wordpress
  • 七台河北京网站建设深圳营销策划
  • 陕西西乡网站建设如何做网站效果图
  • 三门峡高端网站建设临安建设规划局网站
  • 可信网站认证哪里有网站建设分金手指排名一
  • 十大品牌网站建设专业网站的利弊
  • 如何查看网站域名360seo
  • 苏州网站设计kgwl手机网站全屏代码
  • 网站开发工程师就业前景免费企业网站模板