Java弹性搜索:获取索引的最后一个ID
我使用的是弹性搜索7.5.1,它是Java客户端。我使用int作为Java弹性搜索:获取索引的最后一个ID,java,elasticsearch,Java,elasticsearch,我使用的是弹性搜索7.5.1,它是Java客户端。我使用int作为\u id插入索引,我必须手动递增它。为此,我需要检索最后插入的ID。我知道如何使用邮递员: 获取我的索引/\u搜索 { "size": 1, "query": { "match_all": {} }, "sort": [{ "_id": { "order": "desc" } } ] } 但我不知道如何使用他们的。我正在尝试下面的代码,但它返回了一个自
\u id
插入索引,我必须手动递增它。为此,我需要检索最后插入的ID。我知道如何使用邮递员:
获取我的索引/\u搜索
{
"size": 1,
"query": {
"match_all": {}
},
"sort": [{
"_id": {
"order": "desc"
}
}
]
}
但我不知道如何使用他们的。我正在尝试下面的代码,但它返回了一个自动生成的ID。我的索引只有3个ID为1、2和3的项
private static String getLastElastticSearchId(String index)
{
RestHighLevelClient client = getElasticSearchClient();
SearchRequest searchRequest = new SearchRequest();
SearchSourceBuilder b = new SearchSourceBuilder();
b.query(QueryBuilders.matchAllQuery());
b.sort(new FieldSortBuilder("_id").order(SortOrder.DESC));
b.from(0);
b.size(1);
searchRequest.source(b);
try {
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
SearchHits hits = searchResponse.getHits();
if(hits.getTotalHits().value > 0){
SearchHit[] searchHits = hits.getHits();
for (SearchHit hit : searchHits) {
return hit.getId();
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
client.close();
} catch (IOException e) {
e.printStackTrace();
}
}
如何更改代码以获取最后一个ID
谢谢我刚刚发现了问题所在。在实例化请求时,我必须告诉您要在哪个索引中查找:
SearchRequest searchRequest = new SearchRequest(index);
我刚刚发现了问题所在。在实例化请求时,我必须告诉您要在哪个索引中查找:
SearchRequest searchRequest = new SearchRequest(index);