运行带有1个分片和1个节点的测试时出现UnavailableShardsException

时间:2015-11-02 08:56:31

标签: elasticsearch

我们正在Docker中运行我们的测试(PHP应用程序)。有些测试使用Elasticsearch。

我们已将Elasticsearch配置为只有1个节点和1个分片(为简单起见)。这是我们添加到默认值的配置:

index.number_of_shards: 1
index.number_of_replicas: 0

有时,当测试运行时,由于以下Elasticsearch响应,它们会失败:

{
  "_indices":{
    "acme":{
      "_shards":{
        "total":1,
        "successful":0,
        "failed":1,
        "failures":[
          {
            "index":"acme",
            "shard":0,
            "reason":"UnavailableShardsException[[acme][0] Primary shard is not active or isn't assigned to a known node. Timeout: [1m], request: delete_by_query {[acme][product], query [{\"query\":{\"term\":{\"product_id\":\"3\"}}}]}]"
          }
        ]
      }
    }
  }
}

从响应中提取的错误消息:

  

UnavailableShardsException [[acme] [0]主分片未激活或未分配给已知节点。超时:[1m],请求:delete_by_query {[acme] [product],查询[{\"查询\":{\" term \":{\&#34 ; PRODUCT_ID \":\" 3 \"}}}]}]

为什么我们的客户端无法随机连接到Elasticsearch的节点或分片?这与我们只有一个碎片的事实有关吗?这是件坏事吗?

0 个答案:

没有答案