【无标题】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搜索基本操作 的相关文章

随机推荐

  • CentOS下ns-3安装教程

    首先 xff0c 安装ns 3时最好不要使用root权限 xff0c 普通用户安装即可 xff0c 否则后来要找文件会比较麻烦 一 安装依赖软件包 首先安装依赖软件包 根据官网 xff08 https www nsnam org wiki
  • 生产者-消费者模型

    文章来自https github com NieJianJian AndroidNotes xff0c 内容将持续更新 xff0c 欢迎star 一 前言 生产者消费者模式并不是GOF提出的23种设计模式之一 xff0c 23种设计模式都是
  • JAVA 多线程解决高并发、超时线程池耗尽问题

    第一类 问题 项目中遇到了 创建20个固定线程的线程池 在测试环境 多线程如果高并发的调用都没出现问题 但是在实际的项目中 出现了线程池内线程超时等待并将池内的线程耗尽 导致其它的程序走到多线程调用时候出现了执行慢 线程无法执行问题 问题原
  • 31_谈谈你对线程安全的理解?(重点)

    如果这个是面试官直接问你的问题 xff0c 你会怎么回答 xff1f 一个专业的描述是 xff0c 当多个线程访问一个对象时 xff0c 如果不用进行额外的同步控制或其他的协调操作 xff0c 调用这个对象的行为都可以获得正确的结果 xff
  • MariaDB 数据类型

    MariaDB 数据类型 数字数据类型 MariaDB支持的数字数据类型如下 类型描述TINYINT此数据类型表示落入 128到127的有符号范围内的小整数 xff0c 以及0到255的无符号范围 BOOLEAN此数据类型将值0与 fals
  • DBSCAN算法(python代码实现)

    DBSCAN 上次学了kmeans基于划分的方法 xff0c 这次学一个基于密度的聚类算法 xff1a DBSCAN xff08 Density Based Spatial Clustering of Applications with N
  • vs2022(缺少MFC,无法新建项目,控件无法添加事件)的解决

    最近下载安装了最新的vs2022社区版 xff0c 想着把之前的c 43 43 项目能够兼容 xff0c 于是遇到了一些列问题 缺少MFC xff0c 无法新建项目 xff0c 控件无法添加事件 这里首先要吐槽一下 xff1a 也许是我电脑
  • C#多线程加载控件界面卡死的解决

    先听一个故事 xff1a 有一个老板忙不过来 xff0c 于是招一个员工去负责某些事务 这样老板就可以腾出时间处理其它事 后来发现员工干不下去 xff0c 原因是干活需要花费 xff0c 没有老板的认可 xff0c 财务不给批钱 这是原则
  • vs2022账户无法登录的解决

    因为昨天重做系统 xff0c 重装了vs2022 xff0c 又涉及到登录的问题 xff0c 一时想不起来之前怎么解决的了 xff0c 想起来以后决定还是记录下来 我遇到的问题是下面这样的 xff0c 提示脚本错误 xff0c 要求升级最新
  • 使用centos7+bind9构建内网私有dns

    有这样一种场景 xff0c 局域网内有一个为网内用户提供服务的机器 xff0c 我们希望像访问互联网站点一样去访问它 xff0c 而不用记忆ip地址和端口 xff0c 比如在web浏览器地址栏输入http www nx com就可以访问它
  • PowerBuilder制作纸牌游戏

    本文记录的是2001年我大三那年假期制作小游戏的思路 xff0c 希望给在读计算机专业的朋友们一些参考 xff0c 如果还没来得及动手尝试的同学 xff0c 一定要勇于动手 你们一定比我做得更好 制作动力 xff1a 我有一个好朋友 xff
  • 【Qt线程-1】this,volatile,exec(),moveToThread()

    背景 xff1a 个人学习多线程控制 xff0c 写了一些博文用于记录 xff1a Qt线程 2 事件循环 xff08 QCoreApplication processEvents xff0c exec xff09 的应用 Qt线程 3 使
  • 【Qt线程-2】事件循环(QCoreApplication::processEvents,exec)的应用

    背景 xff1a 个人学习多线程控制 xff0c 写了一些博文用于记录 Qt线程 1 this xff0c volatile xff0c exec xff0c moveToThread Qt线程 3 使用事件循环 xff0c 信号 xff0
  • 【Qt线程-4】事件循环嵌套,BlockingQueuedConnection与QWaitCondition比较

    背景 xff1a 个人学习多线程控制 xff0c 写了一些博文用于记录 xff1a Qt线程 1 this xff0c volatile xff0c exec xff0c moveToThread Qt线程 2 事件循环 xff08 QCo
  • 【Qt样式(qss)-3】几套配色方案

    背景 xff1a 之前写过有关qss的博客 xff0c 记录了如何使用qt手册 xff0c 以及在项目中如何使用qss的体验 经过实践 xff0c 我归纳了自己需要的qss使用方法 xff0c 使之尽量高效 xff0c 容易维护 Qt样式
  • 【Qt样式(qss)-4】应用到QMdiArea不生效的解决

    背景 xff1a 之前写记录过几篇qss相关内容 xff1a Qt样式 xff08 qss xff09 1 手册小结 xff08 附例 xff1a 软件深色模式 xff09 Qt样式 xff08 qss xff09 2 使用小结 xff08
  • Google play billing(Google play 内支付) 下篇

    开篇 xff1a 如billing开发文档所说 xff0c 要在你的应用中实现In app Billing只需要完成以下几步就可以了 第一 把你上篇下载的AIDL文件添加到你的工程里 xff0c 第二 把 lt uses permissio
  • Qt creator中操作QAction加入QToolBar

    背景 xff1a 个人笔记 我之前没有系统化学习过任何资料 xff0c 使用很多工具都是按需出发 xff0c 直接上手 xff0c 遇到问题再研究的 所以会有一些弯路 本文言语中难免有对个人情绪的生动描述 xff0c 希望不要影响读者心情
  • 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