所以我有几个文档(5),我正在创建并尝试更新。它们都很相似但是在我将它们插入到elasticsearch之后,只有其中一个响应了
的简单查询curl localhost:9200/myindex/posts/:id
其中:id是elasticsearch中_id数字的替身。其他人给我一个
{"_index":"myindex","_type":"post","_id":":id","exists":false}
然而每当我像这样进行查询时
curl localhost:9200/myindex/posts/:id?routing=3
返回结果。
这不会是一个问题,但是,我正在尝试使用像这样的Tire进行部分更新
Tire.index('myindex'){ update 'post', id, :doc => { :doc_body => content } }
并且未显示未指定路由号码时无法找到的项目的更新。
我只想了解为什么elasticsearch会以这种方式运作。
答案 0 :(得分:0)
所以我发现,因为我正在使用路由,所以我必须像这样编写更新
Tire.index('myindex'){ update 'post', id, { :doc => { :doc_body => content } } { :routing => routing_id } }
很酷的是,如果您使用Tire进行搜索,它会自动进行,使用路由查找文档。
所以
Tire.search('myindex'){ query { string '_id:xxx' } }.results
将返回结果
curl localhost:9200/myindex/posts/xxx
可能不是
我仍然不明白为什么某些文档会显示正常的get请求而其他文档在编制索引后却没有:\