首页 > 其他分享 >ElasticSearch的搜索方式

ElasticSearch的搜索方式

时间:2024-09-21 15:51:15浏览次数:10  
标签:info name 方式 students 搜索 query ElasticSearch id

目录

目录

前言

数据准备

文档搜索

一、查询所有文档

二、全文检索

(1)全文检索

(2)自动纠错

三、范围搜索

四、短语检索

五、单词/词组搜索

六、复合搜索


前言

数据准备

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":"灰太狼是小灰灰的父亲,每次都会说我一定会回来的"
}

文档搜索

GET /索引/_search
{
    "query":{
    搜索方式:搜索参数
   }
}

——————————————————————————————————————————

一、查询所有文档

{
    "query":{
    "match_all":{}
   }
}

二、全文检索

(1)全文检索

{
    "query":{
    "match":{
      搜索字段:搜索条件
     }
   }
}

(2)自动纠错

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

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

三、范围搜索

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

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

四、短语检索

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

{
    "query":{
    "match_phrase":{
      搜索字段:搜索条件
     }
   }
}

五、单词/词组搜索

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

{
    "query":{
    "term":{ 
            搜索字段: 搜索条件
     }
   }
}


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

六、复合搜索

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

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

 举例:

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

GET /students/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "info":"成绩"
          }
        },
        {
          "range":{
            "id":{
              "gte": 1,
              "lte": 3
            }
          }
        }
      ]
    }
  }
}

标签:info,name,方式,students,搜索,query,ElasticSearch,id
From: https://blog.csdn.net/gaoqiandr/article/details/142416914

相关文章

  • 力扣最热一百题——搜索二维矩阵
    目录题目链接:240.搜索二维矩阵II-力扣(LeetCode)题目描述解法一:暴力不解释Java写法:运行时间C++写法:运行时间时间复杂度以及空间复杂度 解法二:利用自带的大小关系进行Z型走位Java写法:运行时间C++写法运行时间时间复杂度以及空间复杂度总结题目链接:240.......
  • (LeetCode 热题 100) 199. 二叉树的右视图(递归、深度优先搜索dfs)
    199.二叉树的右视图思路:递归每次都优先右边子树,然后才是左子树。/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}......
  • 文字的编码方式————不同UTF之间的区别
    1.编码与字体    对于同一个字符,在文件中保存的是他的编码值,这些文字什么形态,是由字符文件决定的。编码值和字体是两个不一样的东西,例如B的编码值是0x42,但是在屏幕上显示出来时,可以有不同形状,如繁体字与简体中文的区别。        什么叫编码?就是一个字符用什......
  • 无人机集群路径规划:麻雀搜索算法(Sparrow Search Algorithm, SSA)​求解无人机集群路
     一、单个无人机路径规划模型介绍无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径,使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一,它可以通过算法和模型来确定无人机的航迹,以避开障碍物、优化飞行时间和节省能量消耗。二、无人......
  • JAVA学习-练习试用Java实现“不同的二叉搜索树 II”
    问题:给定一个整数n,请生成并返回所有由n个节点组成且节点值从1到n互不相同的不同二叉搜索树。可以按任意顺序返回答案。示例1:输入:n=3输出:[[1,null,2,null,3],[1,null,3,2],[2,1,3],[3,1,null,null,2],[3,2,null,1]]示例2:输入:n=1输出:[[1]]提示:1<=n......
  • elasticsearch实战应用
    Elasticsearch是一个基于Lucene的分布式、实时全文搜索引擎,广泛应用于日志收集和可视化、数据分析以及大规模数据检索等领域。其强大的搜索和分析能力,使得Elasticsearch成为许多企业和开发者在处理大规模数据时的首选工具。以下将从Elasticsearch的实战应用、应用场景、性能......
  • Algolia 与 Elasticsearch:选择正确的搜索解决方案
    搜索功能对于现代网站和应用程序至关重要。无论您是构建电子商务网站、媒体平台还是saas产品,为用户提供快速、相关的搜索体验都可以显着增强可用性。两个最受欢迎的搜索解决方案是algolia和elasticsearch。本文将探讨这些工具是什么、何时以及为何选择其中一个工具,以及如何在项......
  • 相亲交友系统 现代爱情的导航仪 在这个数字化的时代,人们的生活方式发生了翻天覆地的
     在这个数字化的时代,人们的生活方式发生了翻天覆地的变化,其中最显著的变化之一便是交友方式的转变。随着社会节奏的加快,越来越多的人选择通过相亲交友系统来寻找人生伴侣。相亲交友系统不仅简化了传统的交友流程,还为单身男女提供了一个全新的平台,在这个平台上,他们可以根据个人偏好......
  • 1.1 elasticsearch分布式集群基本搭建(centos7.x + elaticsearch7.11.1)
    【1】分布式分片集群基础概念【1.1】ES的分布式集群有什么用?高可用高可用(HighAvailability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是9......
  • 一款免费的AI搜索工具,提升您的搜索效率!
    开搜AI是一款面向大众的、直达答案的AI搜索引擎,它能够为用户问题提供直接、精准的答案,并自动总结重点、生成大纲、思维导图并下载。开搜AI功能特点精准结果呈现:开搜AI能够直接呈现精准结果,省去用户翻阅多个的繁琐过程。信息甄别真伪:具备比对纠错、信息甄别真伪、识别比对纠错......