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. hive启动报错:system:java.io.tmpdir等

    解决方法:在hive-site.xml中添加 <property>    <name>system:java.io.tmpdir</name>    <val ...

  2. Nodejs扩展,实现消息弹窗

    參考https://github.com/olalonde/node-notify的实现 模块的C++代码 node_gtknotify.cc #include <v8.h> #inclu ...

  3. HTML5 Canvas 描画渐开线

    渐开线(evolent):在平面上,一条动直线(发生线)沿着一个固定的圆(基圆)作滚动的过程中,此直线上任意一点的轨迹,称为此基圆的一条渐开线.如果将一个圆轴固定在一个平面上,轴上缠线,拉紧一个线头, ...

  4. python——双下划线与python命名机制

    python中双下划线的作用(1)所有以双下划线开头的成员是私有的(2)python对于私有变量是会进行扎压(mangling)的,扎压规则是原始定义:class A():    __function ...

  5. LeetCode题目:Generate Parentheses

    原题地址:https://leetcode.com/problems/generate-parentheses/ 解决方法:回溯法 class Solution { private: vector&l ...

  6. springMVC+json构建restful风格的服务

    首先.要知道什么是rest服务,什么是rest服务呢? REST(英文:Representational State Transfer,简称REST)描写叙述了一个架构样式的网络系统.比方 web 应 ...

  7. Hbase 认识及其作用

    HBase出现的原因: HBase作为面向列的数据库运行在HDFS之上,HDFS缺乏随即读写操作,HBase正是为此而出现.HBase以Google BigTable为蓝本,以键值对的形式存储.项目的 ...

  8. .NET CORE 2.0小白笔记(四):asp.net core输出中文乱码的问题

    问题描述:在学习asp.net core的时候,尝试在控制台,或者页面上输出中文,会出现乱码的问题. 分析解决:控制台乱码的原因是因为中文windows命令行默认编码页是gb2312,想输出中文只要把 ...

  9. 【已解决】 iView-admin 动态路由问题

    IView-admin 在使用的时候 跳转客户详细后,点击其它页面,然后再从选项卡进入页面时,发下控制台 报错,不能正常打开客户详细页面 [vue-router] Route with name 'c ...

  10. leetcode笔记:Add Binary

    一.题目描写叙述 Given two binary strings, return their sum (also a binary string). For example, a = "1 ...