SpringBoot2.0填坑(二):elastic search 報錯{"error":{"root_cause":[{"type":"index_not_found_exception","...
阿新 • • 發佈:2018-12-29
執行程式碼
@GetMapping("searchAll") public ESDatas<DiskFile> searchAll(){ DiskFile diDiskFileDto = new DiskFile(); diDiskFileDto.setDiskFileId("2"); diDiskFileDto.setName("張三"); DiskFile diDiskFileDto1 = new DiskFile(); diDiskFileDto1.setDiskFileId("1"); diDiskFileDto1.setName("李四"); List<DiskFile> list = new ArrayList<>(); list.add(diDiskFileDto); list.add(diDiskFileDto1); esUtil.addOrUpdateDocuments("diskFile",list); ESDatas<DiskFile> esDatas = esUtil.searchAll("diskFile",DiskFile.class); return esDatas; }
頁面報錯
Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Tue Dec 25 16:38:25 CST 2018 There was an unexpected error (type=Internal Server Error, status=500). {"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index","resource.type":"index_or_alias","resource.id":"diskFile","index_uuid":"_na_","index":"diskFile"}],"type":"index_not_found_exception","reason":"no such index","resource.type":"index_or_alias","resource.id":"diskFile","index_uuid":"_na_","index":"diskFile"},"status":404}
前言
不算是SpringBoot 2.0 的坑,只是在開發專案的時候遇到的問題總結。
控制檯報錯
2018-12-25 16:38:25.794 ERROR 5357 --- [nio-8089-exec-1] o.a.c.c.C.[.[.[.[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [/Demo] threw exception [Request processing failed; nested exception is org.frameworkset.elasticsearch.ElasticSearchException: {"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index","resource.type":"index_or_alias","resource.id":"diskFile","index_uuid":"_na_","index":"diskFile"}],"type":"index_not_found_exception","reason":"no such index","resource.type":"index_or_alias","resource.id":"diskFile","index_uuid":"_na_","index":"diskFile"},"status":404}] with root cause org.frameworkset.elasticsearch.ElasticSearchException: {"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index","resource.type":"index_or_alias","resource.id":"diskFile","index_uuid":"_na_","index":"diskFile"}],"type":"index_not_found_exception","reason":"no such index","resource.type":"index_or_alias","resource.id":"diskFile","index_uuid":"_na_","index":"diskFile"},"status":404} at org.frameworkset.elasticsearch.handler.BaseExceptionResponseHandler.handleException(BaseExceptionResponseHandler.java:44) ~[bboss-elasticsearch-rest-5.1.5.jar:na] at org.frameworkset.elasticsearch.handler.ElasticSearchResponseHandler.handleResponse(ElasticSearchResponseHandler.java:61) ~[bboss-elasticsearch-rest-5.1.5.jar:na] at org.frameworkset.elasticsearch.handler.ElasticSearchResponseHandler.handleResponse(ElasticSearchResponseHandler.java:16) ~[bboss-elasticsearch-rest-5.1.5.jar:na] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:223) ~[httpclient-4.5.6.jar:4.5.6] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:165) ~[httpclient-4.5.6.jar:4.5.6] at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:140) ~[httpclient-4.5.6.jar:4.5.6] at org.frameworkset.spi.remote.http.HttpRequestUtil.sendBody(HttpRequestUtil.java:1519) ~[bboss-http-5.0.8.jar:na] at org.frameworkset.spi.remote.http.HttpRequestUtil.sendJsonBody(HttpRequestUtil.java:1477) ~[bboss-http-5.0.8.jar:na] at org.frameworkset.elasticsearch.client.RestSeachExecutor.executeRequest(RestSeachExecutor.java:161) ~[bboss-elasticsearch-rest-5.1.5.jar:na] at org.frameworkset.elasticsearch.client.ElasticSearchRestClient.executeRequest(ElasticSearchRestClient.java:762) ~[bboss-elasticsearch-rest-5.1.5.jar:na] at org.frameworkset.elasticsearch.client.ElasticSearchRestClient.executeRequest(ElasticSearchRestClient.java:726) ~[bboss-elasticsearch-rest-5.1.5.jar:na] at org.frameworkset.elasticsearch.client.RestClientUtil.scroll(RestClientUtil.java:1969) ~[bboss-elasticsearch-rest-5.1.5.jar:na] at org.frameworkset.elasticsearch.client.RestClientUtil.searchAll(RestClientUtil.java:1494) ~[bboss-elasticsearch-rest-5.1.5.jar:na] at org.frameworkset.elasticsearch.client.RestClientUtil.searchAll(RestClientUtil.java:1477) ~[bboss-elasticsearch-rest-5.1.5.jar:na] at org.frameworkset.elasticsearch.client.RestClientUtil.searchAll(RestClientUtil.java:1463) ~[bboss-elasticsearch-rest-5.1.5.jar:na] at com.itunio
解決方案
- 修改為
@GetMapping("searchAll")
public ESDatas<DiskFile> searchAll(){
DiskFile diDiskFileDto = new DiskFile();
diDiskFileDto.setDiskFileId("2");
diDiskFileDto.setName("張三");
DiskFile diDiskFileDto1 = new DiskFile();
diDiskFileDto1.setDiskFileId("1");
diDiskFileDto1.setName("李四");
List<DiskFile> list = new ArrayList<>();
list.add(diDiskFileDto);
list.add(diDiskFileDto1);
esUtil.addOrUpdateDocuments("disk_file",list);
ESDatas<DiskFile> esDatas = esUtil.searchAll("disk_file",DiskFile.class);
return esDatas;
}
結果-成功
總結
ES在儲存和查詢物件時候,命名規則一定要注意 不要用“駝峰式” 命名,用 下劃線“_”隔開。