Elasticsearch有时不会返回现有文档

时间:2014-07-30 07:09:58

标签: elasticsearch

对于按照cURL命令触发的现有文档,我得到:

root@unassigned-hostname:~# curl -XGET "http://localhost:9200/test/test3/573553/"

结果:

{
  "_index": "test",
  "_type": "test3",
  "_id": "573553",
  "exists": false
}

当我第二次发出相同的命令时,我得到:

root@unassigned-hostname:~# curl -XGET "http://localhost:9200/test/test3/573553/"

结果:

{
  "_index": "test",
  "_type": "test3",
  "_id": "573553",
  "_version": 1,
  "exists": true,
  "_source": {
    "id": "573553",
    "name": "hVTHc",
    "price": "21053",
    "desc": "VGNHNXkAAcVblau"
  }
}

我在Ubuntu 12.04上使用Elasticsearch 0.90.11。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我见过弹性搜索分片在网络分区或非常高的添加/更新/删除卷(同一文档在相隔毫秒内更新/删除/添加,可能会竞争)的情况。没有干净的方法来合并分片,相反,你只需随机选择一个胜利者。检查是否是这种情况的一种方法是重复运行匹配所有查询并检查结果是否完全跳转。

如果你想掷骰子并看看会发生什么,你可以将副本设置为0,然后再回到你正在使用的任何值。

虽然这可能不是您的问题的原因,但值得注意的是,这是不依赖弹性搜索作为您的主要事实来源的原因之一。