使用_search但未使用GET找到的文档

时间:2014-05-26 07:50:18

标签: elasticsearch

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

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

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

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

有任何解决方案的建议吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

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/