zoukankan      html  css  js  c++  java
  • elasticsearch从入门到出门-03-多种搜索

    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个是高亮,在做检索时候还是很有用的

     坚持才是进步的开始!

      

      

  • 相关阅读:
    单例模式——C++实现
    单例模式——java实现
    组合模式——java实现
    桥接模式——Java实现
    桥接模式——C++实现
    适配器模式——java实现
    编写一个显示当前时间的jsp页面
    适配器模式——C++实现
    安装配置hadoop1
    Nginx使用教程
  • 原文地址:https://www.cnblogs.com/java-synchronized/p/7017296.html
Copyright © 2011-2022 走看看