1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.codelibs.fess.job;
17
18 import org.apache.logging.log4j.LogManager;
19 import org.apache.logging.log4j.Logger;
20 import org.codelibs.fesen.index.query.QueryBuilder;
21 import org.codelibs.fesen.index.query.QueryBuilders;
22 import org.codelibs.fess.es.client.SearchEngineClient;
23 import org.codelibs.fess.mylasta.direction.FessConfig;
24 import org.codelibs.fess.util.ComponentUtil;
25
26 public class PurgeDocJob {
27
28 private static final Logger logger = LogManager.getLogger(PurgeDocJob.class);
29
30 public String execute() {
31 final SearchEngineClient searchEngineClient = ComponentUtil.getSearchEngineClient();
32 final FessConfig fessConfig = ComponentUtil.getFessConfig();
33
34 final StringBuilder resultBuf = new StringBuilder();
35
36
37 final QueryBuilder queryBuilder = QueryBuilders.rangeQuery(fessConfig.getIndexFieldExpires()).to("now");
38 try {
39 searchEngineClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), queryBuilder);
40
41 } catch (final Exception e) {
42 logger.error("Could not delete expired documents: {}", queryBuilder.toString(), e);
43 resultBuf.append(e.getMessage()).append("\n");
44 }
45
46 return resultBuf.toString();
47 }
48
49 }