ElasticSearch的搜索方式

目录

目录

前言

数据准备

文档搜索

一、查询所有文档

二、全文检索

(1)全文检索

(2)自动纠错

三、范围搜索

四、短语检索

五、单词/词组搜索

六、复合搜索


前言

数据准备

javascript 复制代码
PUT /students
{
  "mappings":{
    "properties":{
      "id": {
            "type": "integer",
        "index": true
       },
         "name": {
            "type": "text",
            "store": true,
        "index": true,
            "analyzer": "ik_smart"
         },
      "info": {
            "type": "text",
            "store": true,
        "index": true,
            "analyzer": "ik_smart"
         }
     }
   }
}


POST /students/_doc/
{
 "id":1,
 "name":"程序员",
 "info":"I love you"
}


POST /students/_doc/
{
 "id":2,
 "name":"美羊羊",
 "info":"美羊羊是羊村最漂亮的人"
}


POST /students/_doc/
{
 "id":3,
 "name":"懒羊羊",
 "info":"懒羊羊的成绩不是很好"
}


POST /students/_doc/
{
 "id":4,
 "name":"小灰灰",
 "info":"小灰灰的年纪比较小"
}


POST /students/_doc/
{
 "id":5,
 "name":"沸羊羊",
 "info":"沸羊羊喜欢美羊羊"
}


POST /students/_doc/
{
 "id":6,
 "name":"灰太狼",
 "info":"灰太狼是小灰灰的父亲,每次都会说我一定会回来的"
}

文档搜索

javascript 复制代码
GET /索引/_search
{
    "query":{
    搜索方式:搜索参数
   }
}

一、查询所有文档

javascript 复制代码
{
    "query":{
    "match_all":{}
   }
}

二、全文检索

(1)全文检索

javascript 复制代码
{
    "query":{
    "match":{
      搜索字段:搜索条件
     }
   }
}

(2)自动纠错

注:在搜索时关键词有可能会输入错误,ES搜索提供了自动纠错功能,即ES的模糊查询。使用match方式可以实现模糊查询。模糊查询对中文的支持效果一般,我们使用英文数据测试模糊查询。

javascript 复制代码
{
    "query": {
        "match": {
            "域名": {
            "query": 搜索条件,
            "fuzziness": 最多错误字符数,不能超过2
            }
        }
    }
}

三、范围搜索

范围搜索。对数字类型的字段进行范围搜索

javascript 复制代码
{
    "query":{
    "range":{
      搜索字段:{ 
        "gte":最小值,
        "lte":最大值
       } 
     }
   }
}
gt/lt:大于/小于
gte/lte:大于等于/小于等于

四、短语检索

搜索条件不做任何分词解析,在搜索字段对应的倒排索引中精确匹配。

javascript 复制代码
{
    "query":{
    "match_phrase":{
      搜索字段:搜索条件
     }
   }
}

五、单词/词组搜索

term/terms:单词/词组搜索。搜索条件不做任何分词解析,在搜索字段对应的倒排索引中精确匹配

javascript 复制代码
{
    "query":{
    "term":{ 
            搜索字段: 搜索条件
     }
   }
}


{
    "query":{
    "terms":{ 
            搜索字段: [搜索条件1,搜索条件2]
     }
   }
}

六、复合搜索

简单来说就是支持多个条件搜索,有三个:必须满足,满足其中一个,必须都不满足!

javascript 复制代码
GET /索引/_search
{ 
    "query": { 
    "bool": { 
      // 必须满足的条件 
      "must": [ 
                搜索方式:搜索参数,
                搜索方式:搜索参数
       ],
      // 多个条件有任意一个满足即可
      "should": [
                搜索方式:搜索参数,
               搜索方式:搜索参数
           ],
            // 必须不满足的条件
           "must_not":[
               搜索方式:搜索参数,
               搜索方式:搜索参数
           ]
       } 
   } 
}

举例:

必须有"成绩"关键字,而且id是大于等于1小于等于3(可以多个条件一起的,如必须满足什么,必须不满足什么)

javascript 复制代码
GET /students/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "info":"成绩"
          }
        },
        {
          "range":{
            "id":{
              "gte": 1,
              "lte": 3
            }
          }
        }
      ]
    }
  }
}
相关推荐
CIO_Alliance26 分钟前
AI基础系列(1)| 向量、矩阵、张量在AI中分别扮演什么角色?
大数据·人工智能·线性代数·ai·矩阵·企业cio联盟·企业级ai化转型
doitnow20001 小时前
2026淘宝运营机构课程体系怎么比较?
大数据·人工智能
Elasticsearch1 小时前
向数据源提问:使用 Elasticsearch 和 Elastic Agent Builder 将代码搜索扩展到十亿行代码规模
elasticsearch
长谷深风1112 小时前
AI工作流编排的三大关键问题
大数据·热门·ai agent·ai智能体·自主决策·agent设计·clarify机制
roman_日积跬步-终至千里2 小时前
【资源控制】自助查询的智能路由
java·大数据·数据库
名不经传的养虾人2 小时前
从0到1:企业级AI项目迭代日记 Vol.87|记忆链路切换了,系统接管有了质量门
大数据·人工智能·ai编程·企业ai·多agent协作
GlobalInfo2 小时前
2026年显微外科手术机器人系统市场报告:市场规模、产业研究、十五五规划与发展趋势预测
大数据·人工智能·机器人
Htr_2 小时前
Outcome 核心概念与实战应用指南
大数据·hadoop·apache
xiaohebang3 小时前
流失预测模型设计:行为特征分析算法选型
大数据·数据结构·经验分享
Meya11273 小时前
RFID 机房资产管理系统:告别手工台账,实现资产全流程自动管控
大数据·服务器