zoukankan      html  css  js  c++  java
  • 深入理解Elasticsearch写入过程 使用routing会导致docid不再全局唯一 Allocate策略 + routing参数

    1.默认查询接口会搜索所有的shard,但也可以指定routing字段,这样就只会查询routing计算出来的shard,提高查询速度。  --使用routing会导致docid不再全局唯一

    使用方式也非常简单,只需在查询语句上面指定routing即可,允许指定多个:

    -- 查询所有分区
    GET route_test/_search 
    {
      "query": {
        "match": {
          "data": "b"
        }
      }
    }
    
    -- 查询指定分区
    GET route_test/_search?routing=key1,key2 
    {
      "query": {
        "match": {
          "data": "b"
        }
      }
    }

    2.指定routing还有个弊端就是容易造成负载不均衡。所以ES提供了一种机制可以将数据路由到一组shard上面,而不是某一个。只需在创建索引时(也只能在创建时)设置index.routing_partition_size,默认值是1,即只路由到1个shard,可以将其设置为大于1且小于索引shard总数的某个值,就可以路由到一组shard了。值越大,数据越均匀。

    https://www.cnblogs.com/caoweixiong/p/12029789.html   参考

    3.ES shard的实质是Lucene的索引,所以其实每个shard都是一个功能完善的倒排索引。

    https://www.jianshu.com/p/cdfe5c019fab

  • 相关阅读:
    webform传值
    webform控件以及使用
    SQL Server 基本数据类型
    数据库设计三大范式
    第一阶段考试
    弹出层
    三级联动日期选择
    DOM例题
    JS方法
    DOM
  • 原文地址:https://www.cnblogs.com/hixiaowei/p/12595765.html
Copyright © 2011-2022 走看看