120.【ElastiSearch】(七)

简介: 120.【ElastiSearch】
(7).布尔值查询 - not (must_not)

即 年龄不等于23岁的...

GET /jsxs/user/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "match": {
            "age": "23"
          }
        }
      ]
    }
  }
}

(8).布尔值查询 range- (filter)

范围值: gte即大于等于 。lte即小于等于

GET /jsxs/user/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "match": {
            "name": "吉士先生2"
          }
        }
      ],
      "filter": {
        "range": {
          "age": {
            "gt": 8
          }
        }
      }
    }
  }
}

(9).多条件查询 (用空格隔开)

这里只能对同一个字段进行用空格隔开查询,也就是数组。

GET /jsxs/user/_search
{
  "query": {
    "match": {
      "tags": "男 技术2"
    }
  }
}

(10).单个值的精确查询 (keyword+term)

term 查询时直接通过倒排索引指定的词条进行精确的查找。

  1. 关于分词:
  • term,直接查询精确的。
  • match,会使用分词器解析!(先分析文档,然后再通过分析的文档进行查询)
  1. 两个类型
  • text: 不会被分词器进行解析。
  • keyword: 会被分词器解析。

1. 创建索引库

PUT testdb
{
  "mappings": {
    "properties": {
      "name":{
        "type": "text"
      },
      "desc":{
        "type": "keyword"
      }
    }
  }
}

2. 插入两条数据

PUT testdb/_doc/2
{
  "name":"狂神说Java name1",
  "desc":"狂神说Java desc1"
}

3. keyword 查询不会被分词器解析

GET _analyze
{
  "analyzer": "keyword",
  "text": "狂神说Java name1"
}

4. text会被分词器给解析,standard默认就是text

GET _analyze
{
  "analyzer": "standard",
  "text": "狂神说Java name1"
}

  1. 精确查找

keyword+term才能精确查找,否则不会精确查找.

GET testdb/_search
{
  "query": {
    "term": {
      "desc": {
        "value": "狂神说Java desc1"
      }
    }
  }
}

(11).多个值匹配精确查询

多个值的精确查询

GET testdb/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "t1": {
              "value": "22"
            }
          }
        },
        {
          "term": {
            "t1": {
              "value": "33"
            }
          }
        }
      ]
    }
  }
}

(12).高亮查询
  1. 高亮查询
"highlight": {
    "fields": {
      "name":{}  给name字段进行操作
    }
  }
GET jsxs/user/_search
{
  "query": {
    "match": {
      "name": "吉士先生"
    }
  },
  "highlight": {
    "fields": {
      "name":{}
    }
  }
}

  1. 更改高亮样式 (自定义高亮样式)
"highlight": {
    "fields": {
      "name":{}
    }
  }
GET jsxs/user/_search
{
  "query": {
    "match": {
      "name": "吉士先生"
    }
  },
  "highlight": {
    "pre_tags": "<p class='key' style='color:red'>", 
    "post_tags": "</p>", 
    "fields": {
      "name":{}
    }
  }
}

相关文章
|
4天前
|
云安全 人工智能 算法
以“AI对抗AI”,阿里云验证码进入2.0时代
三层立体防护,用大模型打赢人机攻防战
1313 3
|
4天前
|
机器学习/深度学习 安全 API
MAI-UI 开源:通用 GUI 智能体基座登顶 SOTA!
MAI-UI是通义实验室推出的全尺寸GUI智能体基座模型,原生集成用户交互、MCP工具调用与端云协同能力。支持跨App操作、模糊语义理解与主动提问澄清,通过大规模在线强化学习实现复杂任务自动化,在出行、办公等高频场景中表现卓越,已登顶ScreenSpot-Pro、MobileWorld等多项SOTA评测。
654 3
|
5天前
|
人工智能 Rust 运维
这个神器让你白嫖ClaudeOpus 4.5,Gemini 3!还能接Claude Code等任意平台
加我进AI讨论学习群,公众号右下角“联系方式”文末有老金的 开源知识库地址·全免费
|
11天前
|
编解码 人工智能 自然语言处理
⚽阿里云百炼通义万相 2.6 视频生成玩法手册
通义万相Wan 2.6是全球首个支持角色扮演的AI视频生成模型,可基于参考视频形象与音色生成多角色合拍、多镜头叙事的15秒长视频,实现声画同步、智能分镜,适用于影视创作、营销展示等场景。
761 5
|
8天前
|
物联网 API UED
Qwen-Image-Edit-2511来啦!角色一致性再提升,LoRA能力内置
Qwen-Image-Edit-2511发布!提升角色与多人合照一致性,集成Lora打光、新视角生成,增强工业设计与几何推理能力。已开源,支持魔搭、QwenChat免费体验,本地部署可获最佳效果。
464 3