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源码阅读ArrayList

    1简介 public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAc ...

  2. Hadoop部署记录

    1.准备Linux环境 1.0先将虚拟机的网络模式选为NAT 1.1修改主机名 vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=node1 ### ...

  3. 13.1Springboot 之 静态资源路径配置

    Spring 静态资源路径是指系统可以直接访问的路径,且路径下的所有文件均可被用户直接读取. 在Springboot中默认的静态资源路径有:classpath:/META-INF/resources/ ...

  4. linux命令之------vmstat使用

    在linux命令中,vmstat是个经常用到的分析系统性能的命令之一,主要有两个参数:一个是采样频率,一个是采样的次数.如:vmstat   1  3,意思就是每隔1秒采样1次,总共采样3次. 统计次 ...

  5. 使用TP自带缓存时。出现第一次拿不到数据。

    使用TP自带缓存时.出现第一次拿不到数据. 仔细检查逻辑发现了问题所在. 逻辑:直接读缓存,如果没有从数据库查询,然后存入缓存. 问题出在以为$exchange = S($fileName,$exch ...

  6. Nginx 限制单个IP的并发连接数及对每个连接速度(限速)

    使用Nginx限制单个IP的并发连接数能够减少一些采集程序或者DDOS的攻击. 再lnmp的nginx配置中已经添加了部分代码,但是是注释掉的,可以编辑/usr/local/nginx/conf/ng ...

  7. 随想录(做自己代码的測试project师)

    [ 声明:版权全部.欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 非常多project师都有一个不好的习惯,由于大多数itproject师都喜欢写代码.可是不喜欢 ...

  8. Android分享功能的一点总结

    前段时间给曾经的App加了分享功能,与大家分享一些心得. 实现分享功能有三种方式: 1.调用Android自带的分享接口.这样的方式最简单.它是直接调用App的发信息功能,把我们的链接通过信息方式发出 ...

  9. SQL 根据表获取字段字符串

    SQLSERVER查询单个数据表所有字段名组合成的字符串脚本 --SQLSERVER查询单个数据表所有字段名组合成的字符串脚本 --应用场合: 用于生成SQL查询字符串中select 字段名列表1 f ...

  10. GoogleMap的鼠标点击标注、搜索和设置城市的简单应用

    资源 Google Map API包含了大量的文档.示例和各种资料.在使用前需要申请自己的密钥 墙内要用:http://maps.google.cn/maps/api/js? 墙外可用:https:/ ...