【无标题】es搜索基本操作

2023-05-16

一,准备数据

1.创建索引

     PUT /lagou-book/

2.创建mapping

PUT /lagou-book/doc/_mapping
{
   "properties":{
    "description":{
        "type":"text",
        "analyzer":"ik_max_word"
    },
    "name":{
        "type":"text",
        "analyzer":"ik_max_word"
    },
    "price":{
        "type":"float"
    },
    "timestamp":{
        "type":"date",
        "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
    }
   }
}

3.数据准备

PUT /lagou-book/doc/1
{ 
"name": "lucene",
"description": "Lucene Core is a Java library providing powerful indexing",
"price":100.45,
"timestamp":"2020-08-21 19:11:35"
}



PUT /lagou-book/doc/2
{
"name": "solr",
"description": "Solr is highly scalable providing fully fault tolerant",
"price":320.45,
"timestamp":"2020-07-21 17:11:35"
}


PUT /lagou-book/doc/3
{
  "name": "Hadoop",
"description": "The Apache Hadoop  solr software library is a framework ",
"price":620.45,
"timestamp":"2020-08-22 19:18:35"
}




PUT /lagou-book/doc/4
{ 
"name": "ElasticSearch",
"description": "Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力",
"price":999.99,
"timestamp":"2020-08-15 10:11:35"
}

4.查询

     (1)词条搜索

       term 用户查询某个字段包含某些词的文档

     


GET  /lagou-book/_search
{
  "query": {
    "term": {
      "name": "solr"
    }
  }
}

      (2) terms query 用户指定字段包含多个词语的文档


GET  lagou-book/_search
{
  "query": {
    "terms": {
      "description": ["hadoop","elasticsearch"]
    }
  }
}

      (3)range query 范围搜索

   gte:大于等于;  gt:大于;  lte:小于等于  lt:小于;

   boost:查询权重。boost可以将某个搜索条件的权重加大,此时当这个搜索条件和另一个搜索条件计算score时,搜索条件权重更大的document,score也会更高,当然也就会优先反回来。

GET  lagou-book/_search
{
  "query": {
    "range": {
      "price": {
        "gte": 100,
        "lte": 500
      }
    }
  }
}

GET  /lagou-book/_search
{
  "query": {
    "range": {
      "timestamp": {
        "gte": "18/08/2020",
        "lte": "01/01/2021",
        "format":"dd/MM/yyyy||yyyy"
      }
    }
  }
}

  (4)不为空搜索

    查询指定字段不为空的文档

GET /lagou-book/_search
{
  "query": {
    "exists":
     {
      "field":"name"
     }
  }
}

    (5) ids集合搜索

GET  lagou-book/_search
{
  "query": {
    "ids": {
      "type": "doc",
      "values": [1,3]
    }
  }
}

(6)bool query布尔搜索

       bool查询用bool操作来组合多个字段为一个查询字段,可用的字段:

       must:必须满足

       must:必须满足,但执行的是filter上下文,不参与、不影响评分

       should:或

        must_not:必须不满足     

GET lagou-book/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "description": "solr"
          }
        }
      ],
      "should": {
        "term": {
          "name": "hadoop"
        }
      },
      "must_not":{
        "range":{
           "price":{
             "gte":300,
             "lte":500
           }
        }
      }
    }
  }
}

(7)排序

       7.1 相关性评分排序

      默认情况下,查询返回的结果是按照相关性排序的—最相关的文档排在前面。在es中,相关性由_score表示,默认排序是_score降序排。

 

 

GET  lagou-book/_search
{
  "query": {
    "match": {
      "description": "solr"
    }
  },
  "sort": [
    {
      "_score": {
        "order": "asc"
      }
    }
  ]
}

7.2多个字段排序(先按照价格降序排,再按照时间戳生序排)

GET  lagou-book/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    {
      "price": {
        "order": "desc"
      },
      "timestamp":{
        "order": "asc"
      }
    }
  ]
}

(8)分页

    size:每页显示多少条

     form:  当前页起始索引, int start = (pageNum - 1) * size

(9)  高亮显示

    

GET /lagou-book/_search
{
  "query": {
    "match": {
      "description": "solr"
    }
  },
  "highlight": {
    "pre_tags": "<font color='pink'>",
    "post_tags": "</font>",
    "fields": [
      {
        "name": {}
      },
      {
        "description": {}
      }
    ]
  }
}

 pre_tags :前置标签;

post_tags:后置标签

fields:需要高亮的字段

(10)filter 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【无标题】es搜索基本操作 的相关文章

随机推荐

  • 易扩展的SLAM框架-OpenVSLAM

    本文介绍了一种具有较高可用性和可扩展性的可视化SLAM框架 OpenVSLAM 视觉SLAM系统对于AR设备 机器人和无人机的自主控制等是必不可少的 然而 传统的开源视觉SLAM框架并没有像从第三方程序调用的库那样进行适当的设计 为了克服这
  • GVINS:基于GNSS视觉惯性紧耦合的平滑状态估计方法

    文章 xff1a GVINS Tightly Coupled GNSS Visual Inertial Fusion for Smooth and Consistent State Estimation 作者 xff1a Shaozu Ca
  • opencv中ArUco模块实践(1)

    论文阅读模块将分享点云处理 xff0c SLAM xff0c 三维视觉 xff0c 高精地图相关的文章 公众号致力于理解三维视觉领域相关内容的干货分享 xff0c 欢迎各位加入我 xff0c 我们一起每天一篇文章阅读 xff0c 开启分享之
  • ROS2入门之基本介绍

    论文阅读模块将分享点云处理 SLAM 三维视觉 高精地图相关的文章 公众号致力于理解三维视觉领域相关内容的干货分享 欢迎各位加入我 我们一起每天一篇文章阅读 开启分享之旅 有兴趣的可联系微信dianyunpcl 163 com 前言 201
  • ikd-Tree:增量KD树在机器人中的应用

    文章 xff1a ikd Tree An Incremental K D Tree for Robotic Applications 作者 xff1a Yixi Cai Wei Xu and Fu Zhang 编译 xff1a 点云PCL
  • 视觉SLAM从传统到语义方法的概述

    文章 xff1a An Overview on Visual SLAM From Tradition to Semantic 作者 xff1a Weifeng Chen Guangtao Shang Aihong Ji Chengjun Z
  • Android 11 PackageManagerService源码分析(二):Packages.xml详解

    1 开篇 在上一篇文章中提到Settings类会在PackageManagerService启动过程中对packages xml等一些列xml文件进行解析 那么有以下问题 xff1a 这些文件记录了什么内容 xff1f 为什么需要这些文件
  • 【Python】eval的作用及NameError: name '变量名' is not defined

    在个人Python 的学习中 xff0c 通过记录总结 xff0c 提高自己的知识储备 xff0c 和学习能力 解决和解释三个小问题 xff1a 1 input与raw input 的区别 2 while循环 3 eval 的作用是什么 x
  • 【Python】使用网络调试助手传输数据(UDP协议)

    目录 1 发送与接收数据代码 2 网络调试助手配置 3 网络通信的流程 1 发送与接收数据代码 导入socket模块 import socket 判断程序入口 if name 61 61 39 main 39 创建套接字 xff0c AF
  • 课程设计——学生成绩管理系统 C语言

    课程设计 学生成绩管理系统 基本要求 xff1a 1 程序功能 编程实现一个基础的成绩管理系统 2 设计目的 通过本程序综合掌握结构体类型 指针 函数 文件等知识的综合使用 3 功能要求 可扩充功能 1 实现简单的菜单设计 如下所示 1添加
  • Foxmail登陆失败-NO LOGIN Login error password error

    问题描述 xff1a 因为今天在一个项目中需要用到邮箱的客户端授权码 xff0c 所以我在网易邮箱网页版中设置了授权码 xff0c 但是在后来在Foxmail客户端收取邮件时出现了问题 xff1a 我确定自己没有改过密码 xff0c 所以又
  • 远程登录阿里云服务器时,提示Permission denied, please try again.

    在使用ssh命令 xff0c 远程登录阿里云服务器时 xff0c 提示Permission denied please try again 百分之九十的可能 xff1a 你的密码错了 xff01 你需要注意的是 xff0c 我们的实例有两个
  • 为什么使用token?session与token的区别

    目录 一 session的状态保持及弊端 二 token认证机制 一 session的状态保持及弊端 当用户第一次通过浏览器使用用户名和密码访问服务器时 xff0c 服务器会验证用户数据 xff0c 验证成功后在服务器端写入session数
  • 在线加密解密工具

    http tool oschina net encrypt 一个在线加解密工具 xff0c 界面如图 xff1a
  • Django到底是MVC还是MVT?以及MVC和MVT的区别

    最近一直被一些问题所困惑 xff1a Django是遵循MVC还是MVT xff1f MVC和MVT到底有哪些区别 xff1f MVC可以继续拆分吗 xff1f 在网络上浏览了很多无关痛痒的文章 xff0c 无非是M V C分别代表什么 x
  • 【Python】使用Counter方法统计字符串每个字符出现的次数

    from collections import Counter a 61 34 a lskdh 96 foiegn 96 96 as ldnf asd 121 2ljladsfkja 96 sdijfhaosjlfd gjsdfg as d
  • 【Python】时间戳的格式化输出

    将当前时间按照 2019 02 25 10 xff1a 26 xff1a 55 输出 xff1a import datetime now time 61 datetime datetime now strftime 34 Y m d H M
  • 【Python】输出给定范围内的所有素数

    质数 xff08 prime number xff09 又称素数 xff0c 有无限个 质数定义为在大于1的自然数中 xff0c 除了1和它本身以外不再有其他因数 首先定义一个空列表用来存放所有的素数 sushu 61 遍历给定的范围 xf
  • Java 通过map构造树形结构

    在开发中 xff0c 经常会有将 数据组装成为树形结构的场景 xff0c 除了可以通过递归实现 xff0c 还可以通过map 组装实现 一 xff0c 构造基本数据 import apple laf JRSUIUtils import co
  • 【无标题】es搜索基本操作

    一 xff0c 准备数据 1 创建索引 PUT lagou book 2 创建mapping PUT lagou book doc mapping 34 properties 34 34 description 34 34 type 34