This commit is contained in:
yfujita 2014-02-02 01:28:07 +09:00
parent 1b88a10e07
commit 0f30323212
3 changed files with 55 additions and 0 deletions

View file

@ -68,6 +68,9 @@ public class DocumentAction implements Serializable {
@Resource
protected SolrGroupManager solrGroupManager;
@Resource
protected SolrGroup suggestSolrGroup;
@Resource
protected WebManagementHelper webManagementHelper;
@ -171,6 +174,15 @@ public class DocumentAction implements Serializable {
throw new SSCActionMessagesException(
"errors.failed_to_commit_solr_index");
} else {
final boolean isUpdateSolrGroup;
final SolrGroup updateSolrGroup = solrGroupManager
.getSolrGroup(QueryType.ADD);
if (updateSolrGroup.getGroupName().equals(solrGroup.getGroupName())) {
isUpdateSolrGroup = true;
} else {
isUpdateSolrGroup = false;
}
final Thread thread = new Thread(new Runnable() {
@Override
public void run() {
@ -178,9 +190,17 @@ public class DocumentAction implements Serializable {
final long execTime = System.currentTimeMillis();
try {
systemHelper.updateStatus(solrGroup, QueryType.ADD);
if (isUpdateSolrGroup) {
systemHelper.updateStatus(suggestSolrGroup,
QueryType.ADD);
}
solrGroup.commit(true, true, false, true);
systemHelper.updateStatus(solrGroup,
QueryType.COMMIT);
if (isUpdateSolrGroup) {
systemHelper.updateStatus(suggestSolrGroup,
QueryType.COMMIT);
}
if (logger.isInfoEnabled()) {
logger.info("[EXEC TIME] index commit time: "
@ -217,6 +237,15 @@ public class DocumentAction implements Serializable {
throw new SSCActionMessagesException(
"errors.failed_to_optimize_solr_index");
} else {
final boolean isUpdateSolrGroup;
final SolrGroup updateSolrGroup = solrGroupManager
.getSolrGroup(QueryType.ADD);
if (updateSolrGroup.getGroupName().equals(solrGroup.getGroupName())) {
isUpdateSolrGroup = true;
} else {
isUpdateSolrGroup = false;
}
final Thread thread = new Thread(new Runnable() {
@Override
public void run() {
@ -224,9 +253,17 @@ public class DocumentAction implements Serializable {
final long execTime = System.currentTimeMillis();
try {
systemHelper.updateStatus(solrGroup, QueryType.ADD);
if (isUpdateSolrGroup) {
systemHelper.updateStatus(suggestSolrGroup,
QueryType.ADD);
}
solrGroup.optimize();
systemHelper.updateStatus(solrGroup,
QueryType.OPTIMIZE);
if (isUpdateSolrGroup) {
systemHelper.updateStatus(suggestSolrGroup,
QueryType.OPTIMIZE);
}
if (logger.isInfoEnabled()) {
logger.info("[EXEC TIME] index optimize time: "
+ (System.currentTimeMillis() - execTime)

View file

@ -96,6 +96,9 @@ public class Crawler implements Serializable {
@Resource
protected SolrGroupManager solrGroupManager;
@Resource
SolrGroup suggestSolrGroup;
@Binding(bindingType = BindingType.MAY)
@Resource
protected ScreenShotManager screenShotManager;
@ -538,6 +541,13 @@ public class Crawler implements Serializable {
statusPolicy.activate(QueryType.OPTIMIZE, serverName);
}
}
final StatusPolicy suggestStatusPolicy = suggestSolrGroup
.getStatusPolicy();
for (final String serverName : suggestSolrGroup.getServerNames()) {
if (suggestStatusPolicy.isActive(QueryType.OPTIMIZE, serverName)) {
suggestStatusPolicy.activate(QueryType.OPTIMIZE, serverName);
}
}
if (logger.isInfoEnabled()) {
logger.info("[EXEC TIME] index optimize time: " + startTime + "ms");
@ -564,6 +574,13 @@ public class Crawler implements Serializable {
statusPolicy.activate(QueryType.COMMIT, serverName);
}
}
final StatusPolicy suggestStatusPolicy = suggestSolrGroup
.getStatusPolicy();
for (final String serverName : suggestSolrGroup.getServerNames()) {
if (suggestStatusPolicy.isActive(QueryType.COMMIT, serverName)) {
suggestStatusPolicy.activate(QueryType.COMMIT, serverName);
}
}
if (logger.isInfoEnabled()) {
logger.info("[EXEC TIME] index commit time: " + startTime + "ms");

View file

@ -6,6 +6,7 @@
<include path="aop.dicon" />
<include path="dbflute.dicon" />
<include path="fess.dicon" />
<include path="fess_suggest.dicon"/>
<include path="s2robot_db.dicon" />