0

所以我有几个文档 (5) 我正在创建并尝试更新。它们都很相似,但是在我将它们插入弹性搜索之后,只有一个响应了一个简单的查询

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.index('myindex'){ update 'post', id, :doc => { :doc_body => content } }

如果没有指定路由号码,则不会显示无法找到的项目的更新。

我只是想了解为什么 elasticsearch 会这样。

4

1 回答 1

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 

可能不会

我仍然不明白为什么有些文档显示正常的获取请求而其他文档在索引后没有显示:\

于 2013-05-20T22:33:17.593 回答