我看到有关弹性搜索1.2.0上的ID的奇怪行为(最近从1.0.1升级)。
搜索检索我的文档,显示_id的正确值:
[terminal]
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不会:
[终端]
curl 'myServer:9200/global/user/7a113e4f-44de-3b2b-a3f1-fb881da1b00a'
结果是
{
"_index": "global",
"_type": "user",
"_id": "7a113e4f-44de-3b2b-a3f1-fb881da1b00a",
"found": false
}
这似乎是先前使用自定义脚本更新的文档。
有什么想法吗?
答案 0 :(得分:5)
我认为你应该升级到1.2.1 由于发行说明(http://www.elasticsearch.org/blog/elasticsearch-1-2-1-released/),存在一些问题,尤其是get:
`Elasticsearch 1.2.0中存在一个路由错误,可能会对群集产生许多不良副作用。可能的副作用包括:
在升级到1.2.0之前编入索引的文档可能无法通过get访问。搜索可以找到这些文档,但不能通过ID来直接获取文档。