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.codelibs.fess.es.client.FessEsClient;
19 import org.codelibs.fess.mylasta.direction.FessConfig;
20 import org.codelibs.fess.util.ComponentUtil;
21 import org.elasticsearch.index.query.QueryBuilder;
22 import org.elasticsearch.index.query.QueryBuilders;
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
25
26 public class PurgeDocJob {
27
28 private static final Logger logger = LoggerFactory.getLogger(PurgeDocJob.class);
29
30 public String execute() {
31 final FessEsClient fessEsClient = ComponentUtil.getFessEsClient();
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 fessEsClient.deleteByQuery(fessConfig.getIndexDocumentUpdateIndex(), fessConfig.getIndexDocumentType(), 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 }