有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java查找索引存在于elasticsearch 5.6中

在进行搜索之前,我试图检查索引是否存在或注释,我通过执行请求找到了一个解决方案,但它不起作用,它导致了NullPointerException

@Autowired
private RestHighLevelClient restHighLevelClient;

private List<E> convertToObjectList(SearchRequest searchRequest) {
    SearchResponse searchResponse = null;
    try {
        if (searchRequest != null) {
            RestClient restClient = null;
            Response response = restClient.performRequest("HEAD", "/" + index()); //java.lang.NullPointerException: null
            int statusCode = response.getStatusLine().getStatusCode();
            if (statusCode != 404) {
                searchResponse = restHighLevelClient.search(searchRequest);
            }
        }
    } catch (IOException e) {
        logger.error("Error" + e);
    }
    ....
}

共 (1) 个答案

  1. # 1 楼答案

    我完全可以解释你的NullPointerException

            RestClient restClient = null;
            Response response = restClient.performRequest("HEAD", "/" + index()); 
    

    在这里,您使用null初始化restClient,然后对其调用一个操作

    这就像你打电话给

    null.performRequest(...)
    

    。。。这可能会让问题变得更加明显

    不能对null值调用任何操作(或获取字段值或任何其他内容)