#2841 Fix fess_basic_config alias handling for Fess multi-instance support.
This commit is contained in:
parent
e84219b0e3
commit
dd4af0dcf6
2 changed files with 15 additions and 3 deletions
|
@ -346,7 +346,7 @@ public class AdminBackupAction extends FessAdminAction {
|
|||
}
|
||||
});
|
||||
} else {
|
||||
final String index;
|
||||
String index;
|
||||
final String filename;
|
||||
if (id.endsWith(".bulk")) {
|
||||
index = id.substring(0, id.length() - 5);
|
||||
|
@ -355,9 +355,17 @@ public class AdminBackupAction extends FessAdminAction {
|
|||
index = id;
|
||||
filename = id + ".bulk";
|
||||
}
|
||||
if ("fess_config".equals(index)) {
|
||||
index = fessConfig.getIndexConfigIndex();
|
||||
} else if ("fess_user".equals(index)) {
|
||||
index = fessConfig.getIndexUserIndex();
|
||||
} else if ("fess_basic_config".equals(index) && !"fess_config".equals(fessConfig.getIndexConfigIndex())) {
|
||||
index = "basic_" + fessConfig.getIndexConfigIndex();
|
||||
}
|
||||
final String alias = index;
|
||||
return asStream(filename).contentTypeOctetStream().stream(out -> {
|
||||
try (final BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out.stream(), Constants.CHARSET_UTF_8))) {
|
||||
SearchEngineUtil.scroll(index, hit -> {
|
||||
SearchEngineUtil.scroll(alias, hit -> {
|
||||
try {
|
||||
writer.write("{\"index\":{\"_index\":\"" + hit.getIndex() + "\",\"_id\":\""
|
||||
+ StringEscapeUtils.escapeJson(hit.getId()) + "\"}}\n");
|
||||
|
|
|
@ -647,7 +647,11 @@ public class SearchEngineClient implements Client {
|
|||
}
|
||||
} else if (index.startsWith(CONFIG_INDEX_PREFIX)) {
|
||||
final String name = fessConfig.getIndexConfigIndex();
|
||||
aliasName = aliasName.replaceFirst(Pattern.quote(CONFIG_INDEX_PREFIX), name);
|
||||
if ("fess_basic_config".equals(aliasName) && !CONFIG_INDEX_PREFIX.equals(name)) {
|
||||
aliasName = aliasName.replaceFirst("fess_basic_config", "basic_" + name);
|
||||
} else {
|
||||
aliasName = aliasName.replaceFirst(Pattern.quote(CONFIG_INDEX_PREFIX), name);
|
||||
}
|
||||
} else if (index.startsWith(USER_INDEX_PREFIX)) {
|
||||
final String name = fessConfig.getIndexUserIndex();
|
||||
aliasName = aliasName.replaceFirst(Pattern.quote(USER_INDEX_PREFIX), name);
|
||||
|
|
Loading…
Add table
Reference in a new issue