美文网首页
es选择合适的查询方式

es选择合适的查询方式

作者: 奋斗的韭菜汪 | 来源:发表于2021-01-22 19:21 被阅读0次

GET查询方式:

特点:最简单的查询方式,类似key-value键值对查询方式,而且实时可靠

#查询索引名为index-name,id为id的记录
GET /{index-name}/_doc/{id}
#条件组合查询,同时查出索引名为product_codes,记录id为1089和1088的记录
GET /_mget
{
  "docs": [
    {
      "_index": "product_codes",
      "_id": 1089
    },
    {
      "_index": "product_codes",
      "_id": 1088
    }
  ]
}
或
GET /product_codes/_mget
{
  "ids": [
    "1088",
    "1089"
  ]
}
或
GET /product_codes/_mget
{
  "docs":[
    {
      "_id":"1089"
    },
        {
      "_id":"1088"
    }
    ]
}

_source:是否需要返回原数据
_source_includes:原数据返回包含字段
_source_excludes:原数据返回忽略字段
routing:分片路由字段
preference:分片选择,默认是RoundRobin算法,可选择local本地优先
refresh:设置索引强制刷新,取值返回true,false
version:数据版本
store_fields:原始数据存储在lucene中,字段属性store设置为true

search查询

特点:是最常用的,基于倒排索引实现的,在同类多条件查询里效率是最高的

GET _search
GET /wzx_test_001/_search/

url请求参数(常用的和需要考虑的):

request_cache:是否启用查询存在结果为0
from:其实参数位置
Perference:分配查询优先度,默认基于Es统计数据
q:通过URL输入查询条件
size:单页数据大小
sort:排序字段
routing:路由控制
_source:返回原始数据控制
scroll:是否滚动快照查询
search_type:全局打分还是分片打分,默认分片打分
version:是否返回数据版本
track_total_hits:是否返回总数量,7.0之后默认返回1万条,6.X版本不兼容

GET /product_codes/_search
{
  "version": true,
  "from": 1,
  "track_total_hits":5,
  "sort": [
    {
      "id": {
        "order": "asc"
      }
    }
  ]
}

DSL领域查询语言:
特点:表达能力丰富、学习难度大,需要持续练习

#查询codeSerial为H190386pro40000002002的记录
GET /product_codes/_search
{
  "query": {
    "term": {
      "codeSerial": {
        "value": "H190386pro40000002002"
      }
    }
  }
}
GET /product_codes/_search
{
  "query": {
    "bool": {
      #组合模式,should相当于或
      "should": [
        {
          "term": {
            "codeSerial": {
              "value": "H190386pro40000002002"
            }
          }
        },
        {
          "match": {
            "productName": "1P"
          }
        }
      ]
    }
  }
}
#查询所有
GET /product_codes/_search
{
  "query": {
    "match_all": {}
  }
}

分值("_score")查询比较耗性能,
es解决方案:filter查询(无分值计算),内部使用bitmap算法去合并查询,无分值计算限制在精确查询领域和非分词领域

相关文章

  • es选择合适的查询方式

    GET查询方式: 特点:最简单的查询方式,类似key-value键值对查询方式,而且实时可靠 _source:是否...

  • 关于Elastic Search的5种分片查询

    分片查询方式 Es查询的时候,默认是随机从一些分片中查询数据,可以通过配置让es从某些分片中查询数据: _prim...

  • springboot配置文件读取

    引言 springboot支持多种配置文件读取方式,了解这些方式有助于查询和定位问题以及选择合适的方式进行开发。 ...

  • SearchAfter 之 score获取

    前言 ES的查询经历 from + size、Scroll、SearchAfter等方式,都是为了逐一解决查询带来...

  • ElasticSearch 7.x 聚合查询

    聚合查询 |ES 的聚合查询和MyQL的聚合查询类型,ES 的聚合查询相比MySQL 要强大的多,ES提供的统计数...

  • 转~elasticsearch 查询(match和term)

    elasticsearch 查询(match和term) es中的查询请求有两种方式,一种是简易版的查询,另外一种...

  • 2021-04-12

    Elasticsearch 提供了丰富的查询过滤语句,本文整理了一些常用的查询方法。 ES 有两种查询方式。本文主...

  • ElasticSearch第5天 es实现分页查询的几种方式

    今日目标 es实现分页查询,在ES中有三种方式可以实现分页:from+size、scroll、search_aft...

  • JPA动态查询方式

    如果我们使用JPA查询特定的字段,而不是某个对象,那么最合适的方式是使用动态查询,其使用方式是将查询语句组成的字符...

  • ES的多种检索方式

    ES的多种检索方式 查询全部: 生产中并不常用 DSL(Domain Specified Language):特定...

网友评论

      本文标题:es选择合适的查询方式

      本文链接:https://www.haomeiwen.com/subject/fpllzktx.html