elasticsearch基础命令

1 字段分词分析:

复制代码
GET /store_info_data/_analyze
{
  "field": "storeName",
  "text":"20pilapala0"
}

2 精确查找,去除评分

复制代码
GET /store_info_data/_search
{
  "query": {
    "constant_score": {
      "filter": {
        "term": {
          "price": "30"
        }
      }
    }
  }
}

3 组合查询案例

SELECT product FROM products

WHERE (price = 20 OR productID = "XHDK-A-1293-#fJ3")

AND (price != 30)

复制代码
GET /store_info_data/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "term": {
            "price": 30
          }
        }
      ],
      "should": [
        {
          "term": {
            "price": 20
          }
        },
        {
          "match": {
            "productID": "XHDK-A-1293-#fJ3"
          }
        }
      ]
    }
  }
}

SELECT document FROM products

WHERE productID = "KDKE-B-9947-#kL5"

OR ( productID = "JODL-X-1937-#pV7" AND price = 30 )

复制代码
GET /store_info_data/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "productID":  "KDKE-B-9947-#kL5"
            
          }
        },
        {
          "bool": {
            "must": [
              {
                "match": {
                  "productID":  "JODL-X-1937-#pV7"
                  
                }
                
              },
              {
                "term": {
                  "price": {
                    "value": "30"
                  }
                }
              }
            ]
          }
        }
      ]
    }
  }
}

4 范围查找

gt: > 大于(greater than)
lt: < 小于(less than)
gte: >= 大于或等于(greater than or equal to)
lte: <= 小于或等于(less than or equal to)

  • 如果我们想查找时间戳在过去一小时内的所有文档:

    "range" : {
    "timestamp" : {
    "gt" : "now-1h"
    }
    }

  • 日期计算还可以被应用到某个具体的时间,并非只能是一个像 now 这样的占位符。只要在某个日期后加上一个双管符号 (||) 并紧跟一个日期数学表达式就能做到:

    • 早于 2014 年 1 月 1 日加 1 月(2014 年 2 月 1 日 零时)

      "range" : {
      "timestamp" : {
      "gt" : "2014-01-01 00:00:00",
      "lt" : "2014-01-01 00:00:00||+1M"
      }
      }

4 exists(存在) & must_not + exists(不存在)

  • exists 用法 判断数据不为null

    GET store_info_data/_search
    {
    "query": {
    "constant_score": {
    "filter": {
    "exists": {
    "field": "author"
    }
    },
    "boost": 1.2
    }
    }
    }

  • must_not + exists用法

    GET store_info_data/_search
    {
    "query": {
    "bool": {
    "must_not": {
    "exists": {
    "field": "name"
    }
    }
    }
    }
    }

5 新增数据

复制代码
# POST
POST my-index-000001/_doc
{
  "my_float":   "2.0", 
  "my_integer": "3" 
}

# PUT 
PUT my-index-000001/_doc/2
{
  "my_float":   "2.0", 
  "my_integer": "3" 
}
相关推荐
HackTwoHub2 小时前
AI大模型网关存在SQL注入、附 POC 复现、影响版本LiteLLM 1.81.16~1.83.7(CVE-2026-42208)
数据库·人工智能·sql·网络安全·系统安全·网络攻击模型·安全架构
l1t2 小时前
DeepSeek总结的DuckLake构建基于 SQL 原生表格式的下一代数据湖仓
数据库·sql
KmSH8umpK2 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第八篇
数据库·redis·分布式
TDengine (老段)2 小时前
从施工监测到运营预警,桥科院用 TDengine 提升桥梁数据管理能力
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
S1998_1997111609•X4 小时前
论mysql国盾shell-sfa犯罪行为集团下的分项工程及反向注入原理尐深度纳米算法下的鐌檵鄐鉎行为
网络·数据库·网络协议·百度·开闭原则
KmSH8umpK4 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第七篇
数据库·redis·分布式
BU摆烂会噶5 小时前
【LangGraph】持久化实现的三大能力——时间旅行
数据库·人工智能·python·postgresql·langchain
l1t6 小时前
DeepSeek总结的DuckLake 入门
数据库
Joseph Cooper6 小时前
RAG 与 AI Agent:智能体真的需要检索增强生成吗?
数据库·人工智能·ai·agent·rag·上下文工程
light blue bird6 小时前
主子端台二分法任务汇总组件
前端·数据库·.net·桌面端winform