精华内容
下载资源
问答
  • Implement mget

    2020-12-09 03:17:28
    <div><p>This patch adds support for mget in the client. It doesnt do the real "scatter gather" of mget yet.</p><p>该提问来源于开源项目:Netflix/dyno</p></div>
  • Mget binary support

    2020-12-31 05:22:58
    <div><p>and I have implemented the mget with support for byte[] keys. Here are the summary of changes <ul><li>Implementing MultiKeyBinaryCommands interface and providing implementation for mget with ...
  • mget wildcard support

    2020-11-26 21:18:50
    <div><p>We launched our new servrer last night and a client is trying to get all files using mget *. Does this server support mget? Any idea how to enable it? <p>URGENT :) <p>thanks!</p><p>该提问来源...
  • About the redis mget

    2020-12-09 06:17:23
    <p>any reason for choosing to use a <code>pipeline</code> instead of <code>redis.mget</code> / <code>redis.mset</code> in <code>get_multi</code>/<code>set_multi</code>? <p>the <code>mget</code> seems ...
  • predixy mget 压测性能

    2020-11-21 20:16:33
    <div><p>连接predixy 进行mget 200key压测时,耗时要几十毫秒,这个时间有点久,而且还有一定的错误率,能建议一下压测时的predixy配置吗</p><p>该提问来源于开源项目:joyieldInc/...
  • _mget学习笔记

    2020-08-06 10:46:38
    _mget可以全局范围内的所有索引中批量查询,使用方式为GET /_mget;也可以在指定索引下批量查询GET /<index>/_mget。 基本用法如下: GET /_mget { "docs": [ { "_index": "my-index", "_id": "1" }, { ...

    _mget可以全局范围内的所有索引中批量查询,使用方式为GET /_mget;也可以在指定索引下批量查询GET /<index>/_mget

    基本用法如下:

    GET /_mget
    {
      "docs": [
        {
          "_index": "my-index",
          "_id": "1"
        },
        {
          "_index": "my-index",
          "_id": "2"
        }
      ]
    }
    
    // 或者
    
    GET /my-index/_mget
    {
      "docs": [
        {
        	"_id": "1"
        },
        {
          "_id": "2"
        }
      ]
    }
    
    // 或者
    
    GET /my-index/_mget
    {
      "ids" : ["1", "2"]
    }
    
    

    查询参数

    • preference:可选字符串参数,用于指定查询将在哪一个节点或者分片上执行,默认为随机。

    • realtime:可选的Boolean参数,true代表要求实时请求,false表示进实时请求,默认为true。

    • refresh:可选的枚举类型,参数可以是true、false、wait_for,默认值为false,如果为true,则ES刷新受影响的分片是该操作可见以进行搜索;wait_for则等待刷新以使该操作可见以进行搜索;false则表示不进行任何刷新。

    • routing:可选的字符串参数,以指定的主分片为目标。

    • stored_fields:可选Boolean参数,如果为true,则检索存储在索引中的文档字段,而不是document_source中的内容。默认为false。

    • _source:可选的字符串参数,可以是truefalse或者一个字段列表,表示返回_source、不返回任何字段、或者返回一个字段列表的值。

    • _source_excludes:可选的字符串参数列表,要从响应中排除的源字段的逗号分隔列表。

    • _source_includes:可选的字符串参数列表,包含在响应中的源字段的逗号分隔列表。

    请求体中的参数

    • docs:它包含_id_index_routing_source(source_includesource_exclude)、_stored_fields

    • ids:需要返回的文档的ID列表

    展开全文
  • Why MGET is not supported?

    2020-12-08 20:48:27
    <div><p>Personally I would say <code>MGET</code> is a big deal, pipelines works but maybe it is not as fast as <code>MGET, is it possible that we could support it ? <p>The idea is simple, when we get ...
  • Elasticsearch mget

    2017-12-26 23:57:00
    ----multi-get---- ... 如果你需要从 Elasticsearch 检索很多文档,那么使用multi-get或者mgetAPI来将这些检索请求放在一个请求中,将比逐个文档请求更快地检索到全部文档。 mgetAPI 要求有一个docs...

    ----multi-get----

    Elasticsearch 的速度已经很快了,但甚至能更快。 将多个请求合并成一个,避免单独处理每个请求花费的网络延时和开销。 如果你需要从 Elasticsearch 检索很多文档,那么使用 multi-get 或者 mget API 来将这些检索请求放在一个请求中,将比逐个文档请求更快地检索到全部文档。

    mget API 要求有一个 docs 数组作为参数,每个 元素包含需要检索文档的元数据, 包括 _index 、 _type和 _id 。如果你想检索一个或者多个特定的字段,那么你可以通过 _source 参数来指定这些字段的名字:

    GET /_mget
    {
       "docs" : [
          {
             "_index" : "website",
             "_type" :  "blog",
             "_id" :    2
          },
          {
             "_index" : "website",
             "_type" :  "pageviews",
             "_id" :    1,
             "_source": "views"
          }
       ]
    }
    

    该响应体也包含一个 docs 数组 , 对于每一个在请求中指定的文档,这个数组中都包含有一个对应的响应,且顺序与请求中的顺序相同。 其中的每一个响应都和使用单个 get request 请求所得到的响应体相同:

    {
      "docs": [
        {
          "_index": "website",
          "_type": "blog",
          "_id": "2",
          "_version": 6,
          "found": true,
          "_source": {
            "title": "My first external blog entry",
            "text": "Starting  "
          }
        },
        {
          "_index": "website",
          "_type": "pageviews",
          "_id": "1",
          "_version": 5,
          "found": true,
          "_source": {
            "views": 5
          }
        }
      ]
    }
    

    如果检索的数据都在相同的_index(甚至相同的_type)中,则可以在URL中指定默认的/_index或者默认的/_index/_type,也可以通过单独的请求覆盖这些值:

    GET /website/blog/_mget
    {
       "docs" : [
          { "_id" : 2 },
          { "_type" : "pageviews", "_id" :   1 }
       ]
    }
    {
      "docs": [
        {
          "_index": "website",
          "_type": "blog",
          "_id": "2",
          "_version": 6,
          "found": true,
          "_source": {
            "title": "My first external blog entry",
            "text": "Starting  "
          }
        },
        {
          "_index": "website",
          "_type": "pageviews",
          "_id": "1",
          "_version": 5,
          "found": true,
          "_source": {
            "views": 5
          }
        }
      ]
    }
    返回结果

    事实上如果所有文档的_index和_type都是相同的,你可以只传一个ids数组,而不是整个docs数组:

    GET /website/blog/_mget
    {
       "ids" : [ "2", "1" ,"30"]
    }

    这里的id为1,2 的文档是存在的,30文档是不存在的。并不会影响其他文档的检索,每个文档都是单独索引和报告的

    {
      "docs": [
        {
          "_index": "website",
          "_type": "blog",
          "_id": "2",
          "_version": 6,
          "found": true,
          "_source": {
            "title": "My first external blog entry",
            "text": "Starting  "
          }
        },
        {
          "_index": "website",
          "_type": "blog",
          "_id": "1",
          "_version": 4,
          "found": true,
          "_source": {
            "title": "My first blog entry",
            "text": "Starting to get the hang of this...",
            "views": 1,
            "tags": [
              "testing"
            ]
          }
        },
        {
          "_index": "website",
          "_type": "blog",
          "_id": "30",
          "found": false
        }
      ]
    }
    返回结果

    注意:这个通过HTTP返回的状态码为200 不能判断是否有数据返回, 需要进一步的判断found标记来判断数,因为mget请求本身已经成功执行。

     

     

    转载于:https://www.cnblogs.com/40kuai/p/8120682.html

    展开全文
  • ve observed via load tests on our applications that our application throughput is severely constrained if we make use a single MGET call. To work around this, we have had to make parallel batch calls ...
  • mget 同时获取

    千次阅读 2016-07-29 16:43:52
    mget 同时获取: http://192.168.32.81:9200/ _mget POST { "docs" :[ { "_index":"library", "_type" :"books", "_id": 1 }, { "_index":"library", "_type
    mget 同时获取:
    
    
    http://192.168.32.81:9200/
    
    _mget                        POST
    
    
    {
       "docs" :[
      { 
       "_index":"library",
       "_type" :"books",
       "_id": 1
       },
        { 
       "_index":"library",
       "_type" :"books",
       "_id": 2
       },
      { 
       "_index":"library",
       "_type" :"books",
       "_id": 3
       }
     ]
    }
    
    
    
    {
    
        "docs": [
            {
                "_index": "library",
                "_type": "books",
                "_id": "1",
                "_version": 5,
                "found": true,
                "_source": {
                    "titile": "Elasticsearch: The Defintive Guide",
                    "name": {
                        "first": "Zachary",
                        "last": "Tong"
                    },
                    "publish_date": "2016-07-29",
                    "price": 10
                }
            }
            ,
            {
                "_index": "library",
                "_type": "books",
                "_id": "2",
                "_version": 1,
                "found": true,
                "_source": {
                    "titile": "Elasticsearch: The Defintive Guide",
                    "name": {
                        "first": "Zachary",
                        "last": "Tong"
                    },
                    "publish_date": "2016-07-29",
                    "price": "99.99"
                }
            }
            ,
            {
                "_index": "library",
                "_type": "books",
                "_id": "3",
                "found": false
            }
        ]
    
    }
    
    
    /************************
    
    http://192.168.32.81:9200/library/books/
    
    _mget                 POST
    
    {
     "ids":["1","2"]
    }
    
    
    
    
    
    

    展开全文
  • NOESCAPE in JSON.MGET

    2020-11-26 18:10:58
    ve found that #35 was solved for JSON.GET, but in my case I require the same thing on JSON.MGET. Any chance to get the same feature in this command? <p>Thank you in advance</p><p>该提问来源于开源项目&...
  • ES GET/MGET 设计理解

    万次阅读 2020-06-04 09:17:58
    ES的读取分为GET和Search两种操作,这两种读取操作有较大的差异,本章我们主要分析下GET/MGET读取操作。 GET/MGET必须指定三元组:_index、_type、_id(http://127.0.0.1:9200/_index/_type/_id),也就是说,根据...

    ES的读取分为GET和Search两种操作,这两种读取操作有较大的差异,本章我们主要分析下GET/MGET读取操作。

    GET/MGET必须指定三元组:_index、_type、_id(http://127.0.0.1:9200/_index/_type/_id),也就是说,根据文档id从正排索引中获取内容。

    注:ElasticSearch中同时保存了正排索引和倒排索引,对该知识不清楚的可以参考:

    深入理解正排索引与倒排索引(设计思想和数据结构)

    GET基本流程

    搜索和读取文档都属于读操作,可以从主分片或副分片中读取数据。

    读取单个文档的流程(图片来自官网)可如下图:

    注:其中P->primary shard(主分片),R->replication shard (副分片)

    步骤如下:

    (1)客户端向NODE1发送读请求(此时NODE1作为协调节点

    (2)NODE1是同文档ID来确定文档属于分片0,通过集群状态中的内容路由表信息获取分片0有三个副本数据,位于三个节点中,此时它可以通过将请求发送到任意节点,图上所示是将请求发送到NODE2。

    (3)NODE2将文档返回给NODE1,NODE1将文档返回给客户端(因为只是获取单个数据信息,不会涉及协调节点的聚合等操作)

    注:NODE1在此流程中作为协调节点,将客户端请求轮询发送到集群的所有副本来实现负载均衡

    了解ElasticSearch中节点角色也是很重要的,对节点角色不清楚的,可以参考:

    ES(Elasticsearch)集群节点角色

     

    🤔思考:如果副分片还没来得及同步主分片的最新数据或者其他原因导致还未同步怎么办?

    在读取时,如果文档可能以及存在于主分片,但是还没有复制到副分片。在这种情况下,读请求命重副分片时可能会报告文档不存在,但是命中主分片可能成功返回文档,一旦写请求成功返回给客户端,则意味着文档正在主分片和副分片都是可用的。

    下面我们展示下GET详细的流程图:

    以上我们展示了单个GET获取数据的流程,那么MGET又是什么?

    MGET

    MGET批量查询,通过封装了单个GET请求实现,处理流程如下:

    (1)遍历请求,计算每个doc的路由信息,得到由shardId为key组成的request map。这个过程并没有在TransportSingleShardAction中实现,避免shardId会重复,这也是合并为基于分片的请求过程。

    (2)循环处理组织好的每个shard级请求,调用处理GET请求时使用TransportSingleShardAction#AsyncSingleAction处理单个doc(也就是异步调用GET逻辑处理业务)

    (3)收集Response,全部Response返回后执行finishHim,可客户端返回结果。

    🤔思考:如果MGET一部分成功,一部分失败怎么办?

    同一个批量操作中各项操作时相互独立的(每个操作都会返回一个请求回复,而不是整个批量操作返回一个单独的回复),因此如果部分文档读取失败,则不影响其他结果,检索失败的doc会在回复信息中标出

    设计性能的时候,批量的大小很关键,如果批量数据过大,那么他们就会占用过多的内存。如果批量太小,多次请求,网络开销就会变大,最佳的平衡点,取决于文档的大小->如果文档很大,每个批量处理中就少放几篇,如果文档很小,就多放几篇,根据实际项目来判定

    下图为示意图:

     

    MGET还是很重要的,一般来说,进行查询的时候,如果一次性查询多条数据的话,那么一定要用batch批量操作的api(MGET),尽可能减少网络开销次数,可能可以将性能提升数倍,甚至十倍,非常重要。

    GET API默认是实时的,实时的意思是写完了可以立即读取,但仅限于GET,MGET操作,不包括搜索(search)操作。在5.x版本之前,GET/MGET的实时读取依赖于从translog中读取实现,5.x版本之后改为了refresh,因此系统对实时读取的支持会对写入速度有负面影响

    展开全文
  • <div><p>In the docs it says the MGET command's syntax is like this: <pre><code> JSON.MGET <key> [key ...] <path> </path></key></code></pre> <p>While in reality, <code><...
  • Redis学习之mget命令

    千次阅读 2019-12-15 09:34:00
    目录mget命令语法返回值例子 mget命令 Redis mget,命令返回所有(一个或多个)给定 key 的值 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 语法 mget key [key ...] 返回值 一个包含所有...
  • ES Search流程 与GET/MGET

    万次阅读 2020-06-05 09:37:45
    ES的读取分为GET和Search两种操作,这两种读取操作有较大的差异,本章我们主要分析下GET/MGET读取操作。 GET/MGET GET/MGET必须指定三元组:_index、_type、_id(http://127.0.0.1:9200/_index/_type/_id),也就是...
  • m trying to use the <code>mget</code> command to download all the files, but I only seem to get the directories. No errors occur and each file does get a line stating it was downloaded okay: <pre>...
  • 1、批量查询的好处 就是一条一条的查询,比如说...2、mget的语法 (1)一条一条的查询 GET /test_index/test_type/1 GET /test_index/test_type/2 (2)mget批量查询 GET /_mget { "docs" : [ { "_index" ...
  • 26.mget批量查询

    2019-10-03 20:28:28
    一、mget批量查询的好处 get查询就是一条一条的查询,比如说要查询100条数据,那么就要发送100次网络请求,这个开销还是很大的。如果使用mget进行批量查询的话,查询100条数据,就只要发送1次网络请求,网络...
  • <div><p>Mget should be on this wikipedia table: <p>https://en.wikipedia.org/wiki/Metalink</p><p>该提问来源于开源项目:rockdaboot/mget</p></div>
  • 此时执行mget命令,hiredis-vip会创建10个sub_command,执行10次mget。这种情况,当前hiredis-vip能否支持只发送一次mget命令? 谢谢</p><p>该提问来源于开源项目:vipshop/hiredis-...
  • DistRedis#mget Quesion/Issue

    2021-01-09 14:34:30
    t think DistRedis#mget maps to Redis#mgets correctly. <p>I created a gist to highlight the issue. http://gist.github.com/268284</p> <p>Do you think DistRedis should map mgets this way? </p><p>该提问...
  • add mget

    2020-12-09 00:05:10
    <div><p>该提问来源于开源项目:stipsan/ioredis-mock</p></div>
  • Add mget call to simplequeue

    2020-12-25 23:49:58
    <div><p>Added mget call. Gets multiple items per single call, newline separated. <p>I also added the unit tests and updated the SimpleQueue class. I tested this on the omni. It seems to increase ...
  • Elasticsearch MGet与Bulk

    2018-09-02 22:14:11
    MGet(Multi Get)与Bulk 都是ES里的批量操作。可降低多次请求的网络开销,提升性能。 MGet:一次请求查询多个文档。 Bulk:一次请求执行多次index、create、update、delete操作。 MGet 注意: mget API 需要一个...
  • Add mget/set to Distributed

    2021-01-09 14:33:03
    <div><p>I was testing the distributed redis with an app that I have and noticed the mget and mset didn't work, obviously because you do not know in which node this should be set. Then I saw the ...
  • <p>ive found that the behaviour of MGET is a bit weird. <p>A try to get missing path from existing keys raises an error , but on the other hand- if no keys at all - MGET return null’s result <p>...
  • Add Redis::Distributed#mget

    2021-01-09 14:37:30
    <p>When a distributed Redis receives <code>mget, find the nodes the keys should be stored on and issue <code>mget</code> commands to each sub-node with only their matching keys. Then combine the ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,999
精华内容 799
关键字:

mget