fix badword
This commit is contained in:
parent
5175add5a8
commit
5c7875189a
2 changed files with 25 additions and 41 deletions
|
@ -39,6 +39,7 @@ import org.codelibs.fess.app.web.CrudMode;
|
|||
import org.codelibs.fess.app.web.base.FessAdminAction;
|
||||
import org.codelibs.fess.es.config.exentity.SuggestBadWord;
|
||||
import org.codelibs.fess.exception.FessSystemException;
|
||||
import org.codelibs.fess.helper.SuggestHelper;
|
||||
import org.codelibs.fess.helper.SystemHelper;
|
||||
import org.dbflute.optional.OptionalEntity;
|
||||
import org.dbflute.optional.OptionalThing;
|
||||
|
@ -66,6 +67,8 @@ public class AdminSuggestbadwordAction extends FessAdminAction {
|
|||
private SystemHelper systemHelper;
|
||||
@Resource
|
||||
protected DynamicProperties crawlerProperties;
|
||||
@Resource
|
||||
protected SuggestHelper suggestHelper;
|
||||
|
||||
// ===================================================================================
|
||||
// Hook
|
||||
|
@ -225,6 +228,7 @@ public class AdminSuggestbadwordAction extends FessAdminAction {
|
|||
validate(form, messages -> {}, toEditHtml());
|
||||
createSuggestBadWord(form).ifPresent(entity -> {
|
||||
suggestBadWordService.store(entity);
|
||||
suggestHelper.addBadWord(entity.getSuggestWord());
|
||||
saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
|
||||
}).orElse(() -> {
|
||||
throwValidationError(messages -> messages.addErrorsCrudFailedToCreateCrudTable(GLOBAL), toEditHtml());
|
||||
|
@ -238,6 +242,7 @@ public class AdminSuggestbadwordAction extends FessAdminAction {
|
|||
validate(form, messages -> {}, toEditHtml());
|
||||
createSuggestBadWord(form).ifPresent(entity -> {
|
||||
suggestBadWordService.store(entity);
|
||||
suggestHelper.storeAllBadWords();
|
||||
saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
|
||||
}).orElse(() -> {
|
||||
throwValidationError(messages -> messages.addErrorsCrudCouldNotFindCrudTable(GLOBAL, form.id), toEditHtml());
|
||||
|
@ -252,6 +257,7 @@ public class AdminSuggestbadwordAction extends FessAdminAction {
|
|||
final String id = form.id;
|
||||
suggestBadWordService.getSuggestBadWord(id).ifPresent(entity -> {
|
||||
suggestBadWordService.delete(entity);
|
||||
suggestHelper.deleteBadWord(entity.getSuggestWord());
|
||||
saveInfo(messages -> messages.addSuccessCrudDeleteCrudTable(GLOBAL));
|
||||
}).orElse(() -> {
|
||||
throwValidationError(messages -> messages.addErrorsCrudCouldNotFindCrudTable(GLOBAL, id), toEditHtml());
|
||||
|
@ -297,6 +303,7 @@ public class AdminSuggestbadwordAction extends FessAdminAction {
|
|||
try {
|
||||
reader = new BufferedReader(new InputStreamReader(new FileInputStream(oFile), enc));
|
||||
suggestBadWordService.importCsv(reader);
|
||||
suggestHelper.storeAllBadWords();
|
||||
} catch (final Exception e) {
|
||||
throw new FessSystemException("Failed to import data.", e);
|
||||
} finally {
|
||||
|
|
|
@ -159,7 +159,7 @@ public class SuggestHelper {
|
|||
}
|
||||
|
||||
public void refreshWords() {
|
||||
deleteAllBadWord();
|
||||
deleteAllBadWords();
|
||||
storeAllElevateWords();
|
||||
}
|
||||
|
||||
|
@ -218,59 +218,36 @@ public class SuggestHelper {
|
|||
// }
|
||||
}
|
||||
|
||||
public void deleteAllBadWord() {
|
||||
public void deleteAllBadWords() {
|
||||
final List<SuggestBadWord> list = suggestBadWordBhv.selectList(cb -> {
|
||||
cb.query().matchAll();
|
||||
});
|
||||
final Set<String> badWords = new HashSet<String>();
|
||||
final Set<String> badWords = new HashSet<>();
|
||||
for (final SuggestBadWord suggestBadWord : list) {
|
||||
final String word = suggestBadWord.getSuggestWord();
|
||||
badWords.add(word);
|
||||
}
|
||||
// TODO
|
||||
// suggestService.updateBadWords(badWords);
|
||||
// suggestService.deleteBadWords();
|
||||
// suggestService.commit();
|
||||
suggester.settings().badword().deleteAll();
|
||||
}
|
||||
|
||||
/*
|
||||
public void updateSolrBadwordFile() {
|
||||
suggestBadWordBhv.selectList(cb -> {
|
||||
public void storeAllBadWords() {
|
||||
deleteAllBadWords();
|
||||
final List<SuggestBadWord> list = suggestBadWordBhv.selectList(cb -> {
|
||||
cb.query().matchAll();
|
||||
});
|
||||
|
||||
final File dir = new File(System.getProperty("catalina.home").replace("¥", "/") + "/" + badwordFileDir);
|
||||
if (!dir.exists() || !dir.isDirectory()) {
|
||||
logger.warn(dir.getAbsolutePath() + " does not exist.");
|
||||
return;
|
||||
for (final SuggestBadWord suggestBadWord : list) {
|
||||
final String word = suggestBadWord.getSuggestWord();
|
||||
suggester.indexer().addBadWord(word);
|
||||
}
|
||||
|
||||
// TODO
|
||||
// final File file = new File(dir, SuggestConstants.BADWORD_FILENAME);
|
||||
// BufferedWriter bw = null;
|
||||
// try {
|
||||
// if (!file.exists()) {
|
||||
// file.createNewFile();
|
||||
// }
|
||||
// bw = new BufferedWriter(new FileWriter(file, false));
|
||||
// for (final SuggestBadWord suggestBadWord : list) {
|
||||
// bw.write(suggestBadWord.getSuggestWord());
|
||||
// bw.newLine();
|
||||
// }
|
||||
// bw.close();
|
||||
// } catch (final IOException e) {
|
||||
// logger.warn("Failed to update badword file.", e);
|
||||
// } finally {
|
||||
// if (bw != null) {
|
||||
// try {
|
||||
// bw.close();
|
||||
// } catch (final Exception e2) {
|
||||
// //ignore
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
*/
|
||||
|
||||
public void addBadWord(final String badWord) {
|
||||
suggester.indexer().addBadWord(badWord);
|
||||
}
|
||||
|
||||
public void deleteBadWord(final String badWord) {
|
||||
suggester.indexer().deleteBadWord(badWord);
|
||||
}
|
||||
|
||||
protected boolean isContentField(final String field) {
|
||||
for (final String contentField : contentFieldNames) {
|
||||
|
|
Loading…
Add table
Reference in a new issue