我想使用Rest高级客户端在elasticsearch中从我的文档中 _仅重新索引选定的字段*。
我知道elasticsearch查询可以实现这一点,但我不知道它是否是使用rest客户端的等效查询。
下面是我尝试使用rest客户端实现的ElasticSearch查询-
{
"body" : {
"source" : {
"index" : "my source index name",
"_source" : "id, name, rollNo"
},
"dest" : {
"index" : "my destination index name"
}
}
}
为了用java编写使用rest客户端的等价查询,我使用了以下代码-
ReindexRequest reindexRequest = new ReindexRequest();
reindexRequest.setSourceIndices("source index name").setDestIndex("destination index name");
reindexRequest.setDocTypes("id", "name", "rollNo", "_doc");
client.reindex(reindexRequest,RequestOptions.DEFAULT);
但是上面的代码并没有像预期的那样工作。它正在重新索引我文档中的所有字段。我只想从每个文档中选择3个字段来重新索引。
1条答案
按热度按时间0tdrvxhp1#
您需要使用下面的代码,因为
setDocTypes
不用于源代码过滤。由于没有直接方法可用于设置源过滤器,因此您需要使用以下代码更改底层搜索请求。