我在Elasticsearch 1.2.0(最近从1.0.1升级)上看到了带有ID的怪异行为。
搜索检索我的文档,显示_id的正确值:
[终奌站]
curl 'myServer:9200/global/_search?q=someField:something
结果是
{ "took": 79, "timed_out": false, "_shards": { "total": 12, "successful": 12, "failed": 0 }, "hits": { "total": 1, "max_score": 17.715034, "hits": [ { "_index": "global", "_type": "user", "_id": "7a113e4f-44de-3b2b-a3f1-fb881da1b00a", ... } ] } }
但是,直接在id上查找不是: [terminal]
curl 'myServer:9200/global/user/7a113e4f-44de-3b2b-a3f1-fb881da1b00a'
{ "_index": "global", "_type": "user", "_id": "7a113e4f-44de-3b2b-a3f1-fb881da1b00a", "found": false }
看来这是在以前使用自定义脚本进行更新的文档上。
有任何想法吗?
我认为您应该升级到1.2.1。由于发行说明(http://www.elasticsearch.org/blog/elasticsearch-1-2-1-released/),存在一些问题,尤其是get:
`Elasticsearch 1.2.0中存在一个路由错误,该错误可能会对集群产生许多不良影响。可能的副作用包括:
升级到1.2.0之前被索引的文档可能无法通过get访问。搜索将找到这些文档,但不能通过ID直接获取该文档。