fix #1099 refresh popular words
This commit is contained in:
parent
43cd969c5c
commit
f84545574f
2 changed files with 37 additions and 21 deletions
|
@ -72,15 +72,17 @@ public class SuggestHelper {
|
|||
|
||||
protected Suggester suggester;
|
||||
|
||||
private FessConfig fessConfig;
|
||||
protected FessConfig fessConfig;
|
||||
|
||||
private final Set<String> contentFieldNameSet = new HashSet<>();
|
||||
protected final Set<String> contentFieldNameSet = new HashSet<>();
|
||||
|
||||
private final Set<String> tagFieldNameSet = new HashSet<>();
|
||||
protected final Set<String> tagFieldNameSet = new HashSet<>();
|
||||
|
||||
private final Set<String> roleFieldNameSet = new HashSet<>();
|
||||
protected final Set<String> roleFieldNameSet = new HashSet<>();
|
||||
|
||||
private List<String> contentFieldList;
|
||||
protected List<String> contentFieldList;
|
||||
|
||||
protected PopularWordHelper popularWordHelper = null;
|
||||
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
|
@ -104,6 +106,10 @@ public class SuggestHelper {
|
|||
if (undefinedAnalyzer.size() > 0) {
|
||||
logger.warn("Undefined lang analyzer. " + undefinedAnalyzer.toString());
|
||||
}
|
||||
|
||||
if (ComponentUtil.hasPopularWordHelper()) {
|
||||
popularWordHelper = ComponentUtil.getPopularWordHelper();
|
||||
}
|
||||
}
|
||||
|
||||
public Suggester suggester() {
|
||||
|
@ -154,7 +160,7 @@ public class SuggestHelper {
|
|||
}
|
||||
}
|
||||
});
|
||||
suggester.refresh();
|
||||
refresh();
|
||||
}
|
||||
|
||||
public void indexFromDocuments(final Consumer<Boolean> success, final Consumer<Throwable> error) {
|
||||
|
@ -180,7 +186,7 @@ public class SuggestHelper {
|
|||
reader.addSort(SortBuilders.scoreSort());
|
||||
return reader;
|
||||
}, 2, fessConfig.getSuggestUpdateRequestIntervalAsInteger().longValue()).then(response -> {
|
||||
suggester.refresh();
|
||||
refresh();
|
||||
success.accept(true);
|
||||
}).error(t -> error.accept(t));
|
||||
}
|
||||
|
@ -227,7 +233,7 @@ public class SuggestHelper {
|
|||
logger.warn("Failed to delete all words.", response.getErrors().get(0));
|
||||
return false;
|
||||
}
|
||||
suggester.refresh();
|
||||
refresh();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -237,7 +243,7 @@ public class SuggestHelper {
|
|||
logger.warn("Failed to delete document words.", response.getErrors().get(0));
|
||||
return false;
|
||||
}
|
||||
suggester.refresh();
|
||||
refresh();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -247,15 +253,10 @@ public class SuggestHelper {
|
|||
logger.warn("Failed to delete query words.", response.getErrors().get(0));
|
||||
return false;
|
||||
}
|
||||
suggester.refresh();
|
||||
refresh();
|
||||
return true;
|
||||
}
|
||||
|
||||
public void refreshWords() {
|
||||
deleteAllBadWords();
|
||||
storeAllElevateWords();
|
||||
}
|
||||
|
||||
public void storeAllElevateWords() {
|
||||
deleteAllBadWords();
|
||||
|
||||
|
@ -268,7 +269,7 @@ public class SuggestHelper {
|
|||
addElevateWord(elevateWord.getSuggestWord(), elevateWord.getReading(), elevateWord.getLabelTypeValues(),
|
||||
elevateWord.getPermissions(), elevateWord.getBoost(), false);
|
||||
}
|
||||
suggester.refresh();
|
||||
refresh();
|
||||
}
|
||||
|
||||
public void deleteAllElevateWord() {
|
||||
|
@ -280,20 +281,21 @@ public class SuggestHelper {
|
|||
for (final ElevateWord elevateWord : list) {
|
||||
suggester.indexer().deleteElevateWord(elevateWord.getSuggestWord());
|
||||
}
|
||||
suggester.refresh();
|
||||
refresh();
|
||||
}
|
||||
|
||||
public void deleteElevateWord(final String word) {
|
||||
suggester.indexer().deleteElevateWord(word);
|
||||
suggester.refresh();
|
||||
refresh();
|
||||
}
|
||||
|
||||
public void addElevateWord(final String word, final String reading, final String[] tags, final String[] permissions, final Float boost) {
|
||||
addElevateWord(word, reading, tags, permissions, boost, true);
|
||||
refresh();
|
||||
}
|
||||
|
||||
public void addElevateWord(final String word, final String reading, final String[] tags, final String[] permissions, final float boost,
|
||||
final boolean commit) {
|
||||
protected void addElevateWord(final String word, final String reading, final String[] tags, final String[] permissions,
|
||||
final float boost, final boolean commit) {
|
||||
final List<String> labelList = new ArrayList<>();
|
||||
for (final String label : tags) {
|
||||
labelList.add(label);
|
||||
|
@ -308,7 +310,7 @@ public class SuggestHelper {
|
|||
.replaceAll(TEXT_SEP + "+", TEXT_SEP).split(TEXT_SEP)), contentFieldList, labelList, roleList));
|
||||
}
|
||||
|
||||
public void deleteAllBadWords() {
|
||||
protected void deleteAllBadWords() {
|
||||
suggester.settings().badword().deleteAll();
|
||||
}
|
||||
|
||||
|
@ -322,13 +324,23 @@ public class SuggestHelper {
|
|||
final String word = badWord.getSuggestWord();
|
||||
suggester.indexer().addBadWord(word);
|
||||
}
|
||||
refresh();
|
||||
}
|
||||
|
||||
public void addBadWord(final String badWord) {
|
||||
suggester.indexer().addBadWord(badWord);
|
||||
refresh();
|
||||
}
|
||||
|
||||
public void deleteBadWord(final String badWord) {
|
||||
suggester.indexer().deleteBadWord(badWord);
|
||||
refresh();
|
||||
}
|
||||
|
||||
public synchronized void refresh() {
|
||||
suggester.refresh();
|
||||
if (popularWordHelper != null) {
|
||||
popularWordHelper.clearCache();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -421,6 +421,10 @@ public final class ComponentUtil {
|
|||
return SingletonLaContainerFactory.getContainer().hasComponentDef(QUERY_HELPER);
|
||||
}
|
||||
|
||||
public static boolean hasPopularWordHelper() {
|
||||
return SingletonLaContainerFactory.getContainer().hasComponentDef(POPULAR_WORD_HELPER);
|
||||
}
|
||||
|
||||
public static boolean available() {
|
||||
try {
|
||||
return SingletonLaContainer.getComponent(SYSTEM_HELPER) != null;
|
||||
|
|
Loading…
Add table
Reference in a new issue