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

ElasticSearch常用DSL命令

1、查询索引字段的映射关系

GET /索引/_mapping

2、查询索引的分词器等设置

GET /索引/_settings

3、根据指定分词器分词

GET /索引/_analyze
{
  "analyzer" : "standard",
  "text" : "层系"
}

4、term查询

POST /索引/_search
{
  "query": {
    "term": {
      "dbId": "101545"
    }
  }
}

5、match查询 

POST /tb/_search
{
  "query": {
    "match": {
      "dbId": "19841159f25845008fad2512aa91f48b"
    }
  }
}

 6、bool查询

        6.1 must组合
GET /tb/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "terms": {
            "dbId": [
              287994
            ]
          }
        },
        {
          "match": {
            "original": "层"
          }
        }
      ]
    }
  }
}

must类似于mysql里面的and命令,上述命令相当于MySQL里面的 where dbId in(287994) and original like '%层%'。注意此处把match命令当成了mysql的like命令,其实这两个命令还是有明显区别的。

        6.2must与should组合
POST /tb/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "dbId": {
              "value": "19841159f25845008fad2512aa91f48b"
            }
          }
        }
      ],
      "should": [
        {
          "match": {
            "original": "边水"
          }
        }
      ],
      "minimum_should_match": 1
    }
  }
}

上述命令类似于MySQL命令:where dbId = '19841159f25845008fad2512aa91f48b' and original like '%边水%'。如果上述命令不加上minimum_should_match: 1,则类似于MySQL命令:where dbId = '19841159f25845008fad2512aa91f48b'。

7、自定义脚本过滤

GET /tb/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "terms": {
            "dbId": [
              "19841159f25845008fad2512aa91f48b"
            ]
          }
        },
        {
            "match_phrase": {
              "original.standard": {
                "query": "层系"
              }
            }
          }
      ],
      "filter": [
        {
          "script": {
            "script": {
              "lang": "painless",
              "source": "String str = params.val;String strLower = params.valLower;String val = doc['original.keyword'].value;return str.contains(val) || strLower.contains(val.toLowerCase());",
              "params": {
                "val": "侏罗层系主力区块年注采比变化",
                "valLower": "侏罗层系主力区块年注采比变化"
              }
            }
          }
        }
      ]
    }
  }
}


http://www.kler.cn/a/287493.html

相关文章:

  • 2411rust,1.80
  • 微信小程序-prettier 格式化
  • uni-app快速入门(七)--组件路由跳转和API路由跳转及参数传递
  • 鸿蒙网络编程系列48-仓颉版UDP回声服务器示例
  • Restful API接⼝简介及为什么要进⾏接⼝压测
  • c++调用 c# dll 通过 clr (详细避坑)
  • 产品需求过程管理重要性
  • 大语言模型之Qwen2技术报告阅读笔记
  • boot跳转APP,概率性串口失效问题。
  • 【Spring Boot-IDEA创建spring boot项目方法】
  • 微积分复习笔记 Calculus Volume 1 - 1.3Trigonometric Functions
  • 基于yolov5的煤矿传送带异物检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
  • free命令
  • Leetcode-有效的数独
  • 《软件工程导论》(第6版)第5章 总体设计 复习笔记
  • 【论文阅读】Single-Stage Visual Query Localization in Egocentric Videos
  • 【云原生】Mysql 集群技术
  • 【王树森】Few-Shot Learning (2/3): Siamese Network 孪生网络(个人向笔记)
  • 软件功能测试的重要性简析,好用的功能测试工具有哪些?
  • 衡石科技产品手册-指标分析
  • SprinBoot+Vue超市管理系统的设计与实现
  • Java-List分批多线程执行
  • 计算机毕业设计 | SpringBoot+vue移动端音乐网站 音乐播放器(附源码)
  • 【0320】Postgres内核之 vacuum heap relation (15)
  • 实训day41(9.2)
  • Flask-RESTFul 之 RESTFul 在蓝图中的使用