【问题标题】:Document found with _search but not with GET使用 _search 但未使用 GET 找到的文档
【发布时间】:2014-06-06 07:59:38
【问题描述】:

我们有一个单机弹性搜索服务器(8 个分片,但都托管在同一台机器上)。索引包含 700 万份文档。我们在索引文档时不指定任何自定义路由。我们使用的是弹性搜索 1.2 版。

问题是我们无法使用 GET 检索我们的许多文档,.但是使用搜索?_id:我们能够检索所有这些文档。

我们还通过使用 GET 指定路由参数(具有不同的值 (1,2,3,...) )来成功检索文档。

使用以前的版本,即 Elastic Search 1.0.3,我们没有这个问题。

有什么解决建议吗?

提前致谢

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    Elasticsearch 1.2.0 中有一个错误会导致这种特定行为。这是由于 1.2.0 中引入的路由错误:

    Elasticsearch 1.2.0 中存在一个路由错误,可能会导致 对集群的不良副作用的数量。可能的副作用 包括:

    • 在升级到 1.2.0 之前编入索引的文档可能无法通过 get 访问。搜索会找到这些文档,但不会 通过 ID 直接获取文档。

    • 升级到 1.2.0 后更新的文档可能会重复,其中一份来自 1.2.0 之前的副本,另一份已更新
      自从升级到 1.2.0。

    • 如果文档如上重复,并且正在使用版本控制,则升级到 1.2.0 后添加的文档将具有其版本
      重置。

    ES 建议大家立即升级到 1.2.1。尚无关于如何解决使用 1.2.0 插入或更新引入的索引损坏的消息。完整的细节在这里:

    http://www.elasticsearch.org/blog/elasticsearch-1-2-1-released/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多