1、query string search

2、query DSL

3、query filter

4、full-text search

5、phrase search

6、highlight search

GET /ecommerce/product/_search

   可以查询出当前索引下这个类型的所有数据,

    

  took 本次搜索耗费的时间:毫秒

  timed_out:是否超时,这里是没有

  —shards 分片所以对于搜索请求,会打到所有的primary shard(或者是它的某个replica shard也可以)

hits

total 查询到的是2个document

max_score :搜索时候的相关性匹配分数

qi

其实这种方式主要是采用的是get的url拼接类似!

2、query DSL

DSL 意思是特殊领域的查询语言:Domain Specified Language,

请求体可以是JSON格式的:

查询包含yagao,且按照价格排序

GET /ecommerce/product/_search
{
  "query": {
    "match": {
      "name": "yagao"
    }
  },"sort": [
    {
      "price": {
        "order": "asc"
      }
    }
  ]
}

分页查询商品每一页显示1条数据,显示第2页:

GET /ecommerce/product/_search
{
  "query": {
    "match_all": {}
  },
  "from": 1
  , "size": 1
}

只查询出来商品的名称和价格就可以:

GET /ecommerce/product/_search
{
 "query": { "match_all": {} },
  "_source": ["name", "price"]
 
}

非常适合生产环境。

3、query filter  相当于查询时候进行过滤了

查询包含牙膏的,并且价格大于21的

GET /ecommerce/product/_search
{
 "query" : {
        "bool" : {
            "must" : {
                "match" : {
                    "name" : "yagao"
                }
            },
            "filter" : {
                "range" : {
                    "price" : { "gt" : 21 }
                }
            }
        }
    }
}

4、full-text search  全文检索

GET /ecommerce/product/_search
{
  "query": {
    "match": {
      "producer": "zhonghua"
    }
  }
}

5、phrase search  短词搜索

注意:这个搜索时精确的搜索,不会对查询的词进行拆分,类似于不会模糊查询然会返回

但是和全文搜索相反,全文搜索或在把查询的参数进行拆分,再去倒排索引上进行查询!

GET /ecommerce/product/_search
{
  "query": {
    "match_phrase": {
      "producer": "produce"
    }
   
  }
}

6、highlight search  高亮搜索

总结下这6中搜索:

第一种url拼接形式的搜索,实战中用的少

第二种搜索:DSL 搜索  相对第一种搜索已经很大的提高,采用JSON格式参数进行搜索

第三种:过滤搜索

第四种:全文搜索,还是很有用的

第五种:短词精确搜索

第6个是高亮,在做检索时候还是很有用的

坚持才是进步的开始!

  

  

elasticsearch从入门到出门-03-多种搜索的更多相关文章

  1. elasticsearch从入门到出门-02-简单的CRUD

    操作背景: 电商网站上面的一个商品的增删改查: es 能接受的都是JSON格式的数据 Es 提供了一套简单的集群信息健康监控的api GET /_cat/health?v   epoch      t ...

  2. elasticsearch从入门到出门-08-Elasticsearch容错机制:master选举,replica容错,数据恢复

    假如: 9 shard,3 node Elasticsearch容错机制:master选举,replica容错,数据恢复 最佳分配情况: 这样分配之后,不管其中哪个node 宕机这个es 依然可以提供 ...

  3. elasticsearch从入门到出门-01windows上安装使用

    elasticsearch 1.安装JDK,至少1.8.0_73以上版本,java -version2.下载和解压缩Elasticsearch安装包,目录结构3.启动Elasticsearch:bin ...

  4. elasticsearch从入门到出门-06-剖析Elasticsearch的基础分布式架构

    这个图来自中华石杉:

  5. elasticsearch从入门到出门-05-集群之踩坑

    自己搭的集群, 设备: win10 + ubuntu 16 的虚拟机一个: 下载的版本:elasticsearch-5.2.0 win10 解压下就好了,不说了. ubuntu 上,我想说多了都是泪! ...

  6. elasticsearch从入门到出门-04-入门的几个需求练手

    第一个分析需求:计算每个tag下的商品数量 GET /ecommerce/product/_search{  "aggs": {    "group_by_tags&qu ...

  7. sharding-jdbc从入门到出门(03)

    经过端午节这2天对 sharding-jdbc一直怀揣成梦想的去学习,还是有一些没有解决的问题: 上一张图:

  8. Elasticsearch从入门到放弃:分词器初印象

    Elasticsearch 系列回来了,先给因为这个系列关注我的同学说声抱歉,拖了这么久才回来,这个系列虽然叫「Elasticsearch 从入门到放弃」,但只有三篇就放弃还是有点过分的,所以还是回来 ...

  9. Elasticsearch从入门到精通-Elasticsearch是什么

    作者其他ELK快速入门系列文章 logstash快速入门实战指南 Kibana从入门到精通 一.前言 驱动未来商业发展的最重要“能源”不是石油,而是数据.我们还来不及了解它,这个世界已经被它淹没.多年 ...

随机推荐

  1. Java学习之自动装箱和自动拆箱源码分析

    自动装箱(boxing)和自动拆箱(unboxing) 首先了解下Java的四类八种基本数据类型   基本类型 占用空间(Byte) 表示范围 包装器类型 boolean 1/8 true|false ...

  2. 为windows开启winrm service, 以便进行远程管理

    为windows开启winrm service, 以便进行远程管理   是windows 一种方便远程管理的服务:开启winrm service,便于在日常工作中,远程管理服务器,或通过脚本,同时管理 ...

  3. VM虚拟机 Windows虚拟机中linux鼠标不能动怎么办

    有一次vmware安装red hat linux后,进入x-windows界面,鼠标不能用,百思不得其解,因为自己的安装linux的过程中设置绝对是没有问题的啊,鼠标设置肯定是usb带滑轮,这个肯定没 ...

  4. 标准库priority_queue的一种实现

    优先级队列相对于普通队列,提供了插队功能,每次最先出队的不是最先入队的元素,而是优先级最高的元素. 它的实现采用了标准库提供的heap算法.该系列算法一共提供了四个函数.使用方式如下: 首先,建立一个 ...

  5. react-native-router-flux 页面跳转与传值

    1.正向跳转假设情景:从Home页跳转到Profile页面,Profile场景的key值为profile 不带参数: Actions.profile 带参数: Actions.profile({'ke ...

  6. lodash 数组裁剪 drop

    _.drop(array, [n=1]) 裁剪数组中的前 N 个数组,返回剩余的部分. <!DOCTYPE html> <html lang="zh"> & ...

  7. Android高级控件(三)——&#160;使用Google ZXing实现二维码的扫描和生成相关功能体系

    Android高级控件(三)-- 使用Google ZXing实现二维码的扫描和生成相关功能体系 摘要 如今的二维码可谓是烂大街了.到处都是二维码.什么都是二维码,扫一扫似乎已经流行到习以为常了,今天 ...

  8. Javascript 客户端实时显示服务器时间

    <!doctype html> <html lang="zh-cn"> <head> <meta charset="utf-8& ...

  9. Mysql:使用workbeanch导出数据库

    MySQL Workbench导出数据库   步骤: 1. 打开mysql workbench,进入需要导出的数据库,点击左侧栏的[Management]tab键. 2. 点选要输出的数据库 点击[D ...

  10. 事务(Transaction)概念和特性

    http://baike.baidu.com/view/121511.htm 概念 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务通常由高级数据库 ...