文件如下:
方法如下:
- url传参 直接传 .json文件的名称即可 如:index-setting.json
public static String readFileFromClasspath(String url) {
url = System.getProperty("user.dir") + "/src/main/resources/" +url;
String jsonStr = "";
try {
File jsonFile = ResourceUtils.getFile(url);
FileReader fileReader = new FileReader(jsonFile);
Reader reader = new InputStreamReader(new FileInputStream(jsonFile), StandardCharsets.UTF_8);
int ch = 0;
StringBuffer sb = new StringBuffer();
while ((ch = reader.read()) != -1) {
sb.append((char) ch);
}
fileReader.close();
reader.close();
jsonStr = sb.toString();
return jsonStr;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
创建索引:
if (!esTemplate.indexExists(indexName)) {
String setting = readFileFromClasspath(settingFile);
String mapping = readFileFromClasspath(mappingFile);
try {
esTemplate.createIndex(indexName, setting);
esTemplate.putMapping(IndexCoordinates.of(indexName), mapping);
} catch (Exception e) {
if (esTemplate.indexExists(indexName)) {
esTemplate.deleteIndex(indexName);
}
String msg = MessageFormat.format("create index {0} fail", indexName);
log.error(msg, e);
throw new RuntimeException(msg, e);
}
}