zoukankan      html  css  js  c++  java
  • Scripting查询

    一、Painless

    1、Painless是一种专门用于Elasticsearch的简单,用于内联和存储脚本,类似于Java,也有注释、关键字、类型、变量、函数等,安全的脚本语言。它是Elasticsearch的默认脚本语言,可以安全地用于内联和存储脚本。

    2、语法

    POST /product2/_update/4
    {
      "script": {
        "source": "ctx._source.price-=1"
      }
    }

      举个例子 比如小米10出新款了 新增一个tag叫 无线充电
      POST product2/_update/3
      {
        "script": {
        "lang": "painless",
        "source": "ctx._source.tags.add('无线充电')"
        }
      }

    ①支持操作:delete、upsert、noop

    POST product2/_update/15
    {
      "script": {
        "lang": "painless",
        "source": "ctx.op='delete'"
      }
    }
    #upsert   smartison  update insert
    #如果数据存在,执行partial update操作,如果数据不存在,那么执行create操作
    GET /product2/_doc/15
    POST product2/_update/15
    {
      "script": {
        "source": "ctx._source.price += params.param1",
        "lang": "painless",
        "params": {
          "param1": 100
        }
      },
      "upsert": {
        "name": "小米10",
        "price": 1999
      }
    }

    ②Stored scripts:可以理解为script模板  缓存在集群的cache中

    格式:/_scripts/{id} 

    POST _scripts/is
    {
      "script":{
        "lang": "painless",
        "source": "doc['price'].value*params.discount"
      }
    }
    GET _scripts/is
    
    GET /product/_search
    {
      "script_fields": {
        "test_field": {
          "script": {
            "id": "is",
            "params": {
              "discount": 0.5
            }
          }
        }
      }
    }

    二、ES写入原理

    第一步:写入请求会进入内存,写入Buffer文件中

    第二步:Buffer文件每1s就会创建一个index segment,瞬间将数据同步到OS Cache中

    第三步:OS Cache会将index segment的状态修改为open,这时客户端就可以进行数据查询

    第四步:当OS Cache存储一定数值或一定时间时,会将Buffer中的请求执行commit操作,写入OS Cache

        OS Cache会执行fsync将内存中的数据写入磁盘OS Disk

      为实现容灾:每次写入Buffer时都会同时将数据写入translog文件中,当触发fsync操作时会清空translog文件

  • 相关阅读:
    HtmlElement
    CSS3边框 阴影 boxshadow
    BOMwindow
    CSS3边框 圆角效果 borderradius
    Graphviz: 绘制依赖图、流程图、关系图 + dot 语言
    bat、cmd 批处理中(或 DOS环境)的特殊字符
    SchemaSpy:数据库构架文档生产器,以及该软件的部分缺陷修改。提供工具包下载
    (花生壳)向日葵 相关虚拟硬件(驱动)造成 xp 系统无法正常 待机、休眠
    Sqlserver:Sqlserver数据库的脚本生成器2.1
    PHP100精华:PHP打印函数集合
  • 原文地址:https://www.cnblogs.com/lyc-code/p/13680620.html
Copyright © 2011-2022 走看看