一尘不染

ElasticSearch在搜索中返回文档,但不在GET中返回文档

elasticsearch

我正在搜索索引中的文档,然后尝试通过获取其中的一些文档_id。尽管收到了一组结果,但是某些文档无法通过简单的get来检索。更糟糕的是,我可以通过URI搜索获得相同的文档,其中?_id:<the id>

例如,运行一个简单的GET

curl -XGET 'http://localhost:9200/keepbusy_process__issuer_application/KeepBusy__Activities__Activity/neHSKSBCSv-OyAYn3IFcew'

给我结果:

{
  "_index" : "keepbusy_process__issuer_application",
  "_type" : "KeepBusy__Activities__Activity",
  "_id" : "neHSKSBCSv-OyAYn3IFcew",
  "exists" : false
}

但是,如果我使用相同的_id进行搜索:

curl -XGET 'http://localhost:9200/keepbusy_process__issuer_application/KeepBusy__Activities__Activity/_search?q=_id:neHSKSBCSv-OyAYn3IFcew'

我得到了预期的结果:

{
  "took": 2,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 1.0,
    "hits": [
      {
        "_index": "keepbusy_process__issuer_application",
        "_type": "KeepBusy__Activities__Activity",
        "_id": "neHSKSBCSv-OyAYn3IFcew",
        "_score": 1.0,
        "_source": {
          "template_uid": "KeepBusy__Activities__Activity.create application",
          "name": "create application",
          "updated_at": "2014-01-08T10:02:33-05:00",
          "updated_at_ms": 1389193353975
        }
      }
    ]
  }
}

我正在通过Stretcher ruby​​ API索引文档,索引后立即进行刷新。我的本地设置是 2个节点 。我正在运行 v0.90.9

在日志中,没有任何明显的原因会导致失败。我已经重新启动了群集,并且一切似乎都可以正常启动,但是结果是相同的。

是否有我所缺少的东西,或者可以以某种方式进一步诊断此问题?


阅读 218

收藏
2020-06-22

共1个答案

一尘不染

当使用非默认路由对文档建立索引(在父/子文档的情况下,显式设置或从父ID扣除)时,通常会发生此问题。如果是这种情况,请尝试在您的请求中指定正确的路由

2020-06-22