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. scrapy爬虫 函数间传值简易教程

    2017-03-27 有的时候我们爬取数据的时候需要在多个页面之间跳转,爬取完所有页面的数据的时候才能把所有数据一起存到数据库,这个时候我们就需要把某个函数内爬取的数据传到下一个函数当中.有人可能会说 ...

  2. JS杂技之无中间变量的值交换方式

    从http://www.cnblogs.com/liuyitian/p/4081517.html#3074553看到一种无中间变量的值交换方式,具体如下: var a = 1;var b = 2;a ...

  3. 新Android工程src和layout目录为空的问题

    问题症状:eclipse创建的新Android工程,发现src下为空,res\layout目录下也为空. 原因:升级了SDK,新版本sdk与ADT冲突.具体冲突的版本号为ADT 23.X与SDK22. ...

  4. linux系统预留内存和磁盘大小

    默认情况下, Linux 会最多使用 40% 的可用内存作为文件系统缓存.当超过这个阈值后,文件系统会把将缓存中的内存全部写入磁盘, 导致后续的 IO 请求都是同步的. 将缓存写入磁盘时,有一个默认1 ...

  5. vscode - 更改emmet生成代码

    有时候生成的代码,并不适用自己,所以想想改生成代码: 因为windows查找文件/文件内容非常慢,所以借用了一下Linux的搜索命令,查找了一下 ie=edge  ,最后,找到了 expand-ful ...

  6. Android学习(十九)Dialog对话框

    一.什么是Dialog对话框 对话框是当前页面中弹出的一个小窗口,用于显示重要的提示信息,提示用户输入信息,确认信息,或者显示某种状态,如下载进度,退出提示等等.用户需要与对话框进行交互,才能回到原窗 ...

  7. vueAdmin使用动态路由时踩坑

    在路由守护方法router.beforeEach中如果有使用动态路由,注意此时的路由对当前的router无效,下次路由时才起效. 导致的问题是---- 当页面刷新或重新打开页面时,无法找到当前路由(跳 ...

  8. NSDate 类的总结,全面基础

    <span style="font-size:24px;"><span style="font-size:18px;">//1.创建日期 ...

  9. HTML5+CSS3学习笔记(一) 概述

    HTML5+CSS3概述      HTML5和CSS3不仅仅是两项新的Web技术标准,更代表了下一代HTML和CSS技术.虽然HTML5的标准规范还没有正式发布,但是未来的发展前景已经可以预见,那就 ...

  10. LBS 附近的人

    1 http://www.infoq.com/cn/articles/depth-study-of-Symfony2 2 http://lbsyun.baidu.com/