ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ElasticSearch 原生http请求查询操作

2022-07-17 18:40:49  阅读:166  来源: 互联网

标签:原生 http title 查询 查找 ElasticSearch query match


分页查询,条件查询

通过请求路径查询数据
http://127.0.0.1:9200/shopping/_search?q=title:上衣


通过请求体查询数据
查询指定条件
{
    "query" : {
        "match" : {
             "title" : "上衣"
         }
     }
}
查询全部数据
{
    "query" : {
        "match_all" : {

         }
     }
}
http://127.0.0.1:9200/shopping/_search       



分页查询  使用get
{
    "query" : {
        "match_all" : {

         }
     }
     "from" : 0,   页码  (当前页 - 1)* 每页展示条数
     "size" : 10, 每页展示条数
     "_source" :  ['title'] ,  查询指定字段
     "sort" : {
          "price ": {
               "order" : "desc"
          }
     },    根据价格排序
}
http://127.0.0.1:9200/shopping/_search   

 

多条件查询,范围查询

多条件查询    must代表必须and     shold代表or
{
     "query":{
          "bool" : {
               "must" : [
                    "match" : {
                         "title" : "裤子"
                    },
                    "match" : {
                         "price" : 100.00
                    }
               ],
               范围查找price大于5000的数据
               "filter" : [
                   "range" : {
                       "price" : {
                            "gt": 5000
                        }
                   }
               ]
          }
     }
}
http://127.0.0.1:9200/shopping/_search        get

全文检索,完全匹配

es查询数据会将数据按照分词的形式保存到倒排索引

数据当中如果有“上衣”这个词,查询“上”“衣”,都可以查询出来
如果数据当中有“上衣”, “裤子”这个词, 那么查询 “衣裤”,就会把“上衣”, “裤子”全部查出来,在某些场景下,是不符合需求的
{
    "query" : {
        "match" : {
             "title" : "上衣"
         }
     }
}


所以需要完全匹配   match_phrase
{
    "query" : {
        "match_phrase" : {
             "title" : "上衣"
         }
     },
    对查询结果字段高亮显示
     "lighlight" : {
          "fields" : {
              "category" : {}  会对category字段进行高亮展示
          }
     }
}
http://127.0.0.1:9200/shopping/_search      get
 

聚合查询

分组 terns    平均值  avg


{
    "aggs" : {    //聚合查询
        "price_group" : {    //随意取名,价格分组
             "terns" : {    //分组
                  "field" : "price"   //字段名称
              }
         }
     },
     "size" : 0   //不展示原始数据
}

映射关系

在创建文档的时候,可以声明字段映射关系
{ "properties" : { "name" : { "type" : "text", //text 代表可以分词查找 "index" : true, //true 代表可以索引查找 }, "sex" : { "type" : "keyword", //keyword 代表关键词不可以分词查找 "index" : true, //true 代表可以索引查找 }, "tel" : { "type" : "keyword", //keyword 代表关键词不可以分词查找 "index" : false, //false 代表不可以索引查找,这个字段不支持查找 } } }

 

标签:原生,http,title,查询,查找,ElasticSearch,query,match
来源: https://www.cnblogs.com/bkhdd/p/16487975.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有