package com.x.base.core.project.config;
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.tika.utils.SystemUtils;
import org.quartz.CronExpression;
import com.x.base.core.project.annotation.FieldDescribe;
import com.x.base.core.project.gson.XGsonBuilder;
import com.x.base.core.project.tools.DefaultCharset;
import com.x.base.core.project.tools.NumberTools;
import io.swagger.v3.oas.annotations.media.Schema;
public class Query extends ConfigObject {
public static Query defaultInstance() {
return new Query();
}
public Query() {
this.extractImage = DEFAULT_EXTRACTIMAGE;
this.tessLanguage = DEFAULT_TESSLANGUAGE;
this.index = new Index();
}
@Deprecated(forRemoval = true)
@FieldDescribe("抽取图像中的文本.")
private Boolean extractImage = false;
@Deprecated(forRemoval = true)
@FieldDescribe("查询批次大小.")
private Integer planQueryBatchSize = DEFAULT_PLANQUERYBATCHSIZE;
public static final Boolean DEFAULT_EXTRACTOFFICE = true;
public static final Boolean DEFAULT_EXTRACTPDF = true;
public static final Boolean DEFAULT_EXTRACTTEXT = true;
public static final Boolean DEFAULT_EXTRACTIMAGE = false;
public static final String DEFAULT_TESSLANGUAGE = "chi_sim";
public static final Integer DEFAULT_PLANQUERYBATCHSIZE = 500;
public Integer getPlanQueryBatchSize() {
return (this.planQueryBatchSize == null || planQueryBatchSize < 1) ? DEFAULT_PLANQUERYBATCHSIZE
: this.planQueryBatchSize;
}
public Boolean getExtractImage() {
return SystemUtils.IS_OS_WINDOWS && BooleanUtils.isTrue(extractImage);
}
public String getTessLanguage() {
return StringUtils.isNotEmpty(this.tessLanguage) ? this.tessLanguage : DEFAULT_TESSLANGUAGE;
}
public void save() throws Exception {
File file = new File(Config.base(), Config.PATH_CONFIG_QUERY);
FileUtils.write(file, XGsonBuilder.toJson(this), DefaultCharset.charset);
}
public void setExtractImage(Boolean extractImage) {
this.extractImage = extractImage;
}
public void setTessLanguage(String tessLanguage) {
this.tessLanguage = tessLanguage;
}
@FieldDescribe("tess使用语言.")
private String tessLanguage = "chi_sim";
@FieldDescribe("检索配置.")
@Schema(description = "检索配置.")
private Index index;
public Index index() {
return this.index == null ? new Index() : this.index;
}
public static class Index extends ConfigObject {
public static Index defaultInstance() {
return new Index();
}
public static final String FIELD_HIGHLIGHTING = "highlighting";
public static final String READERS_SYMBOL_ALL = "ALL";
public static final String DIRECTORY_SEARCH = "search";
public static final String MODE_LOCALDIRECTORY = "localDirectory";
public static final String MODE_HDFSDIRECTORY = "hdfsDirectory";
public static final String MODE_SHAREDDIRECTORY = "sharedDirectory";
public static final String DEFAULT_HDFSDIRECTORYDEFAULTFS = "hdfs://127.0.0.1:9000";
public static final String DEFAULT_HDFSDIRECTORYPATH = "/";
public static final String DEFAULT_SHAREDDIRECTORYPATH = "/repository/index";
public static final String DEFAULT_MODE = MODE_LOCALDIRECTORY;
public static final Integer DEFAULT_MAXSEGMENTS = 1;
public static final Integer DEFAULT_CLEANUPTHRESHOLDDAYS = 180;
public static final Integer DEFAULT_DATASTRINGTHRESHOLD = 50;
public static final Integer DEFAULT_SUMMARYLENGTH = 250;
public static final Integer DEFAULT_ATTACHMENTMAXSIZE = 5;
public static final Boolean DEFAULT_WORKINDEXATTACHMENT = false;
public static final Boolean DEFAULT_WORKCOMPLETEDINDEXATTACHMENT = true;
public static final Boolean DEFAULT_DOCUMENTINDEXATTACHMENT = true;
public static final Boolean DEFAULT_LOWFREQDOCUMENTENABLE = true;
public static final String DEFAULT_LOWFREQDOCUMENTCRON = "40 15 19 * * ?";
public static final Integer DEFAULT_LOWFREQDOCUMENTBATCHSIZE = 100;
public static final Integer DEFAULT_LOWFREQDOCUMENTMAXCOUNT = 50000;
public static final Integer DEFAULT_LOWFREQDOCUMENTMAXMINUTES = 60;
public static final Boolean DEFAULT_LOWFREQWORKENABLE = true;
public static final String DEFAULT_LOWFREQWORKCRON = "40 15 20 * * ?";
public static final Integer DEFAULT_LOWFREQWORKBATCHSIZE = 100;
public static final Integer DEFAULT_LOWFREQWORKMAXCOUNT = 50000;
public static final Integer DEFAULT_LOWFREQWORKMAXMINUTES = 60;
public static final Boolean DEFAULT_LOWFREQWORKCOMPLETEDENABLE = true;
public static final String DEFAULT_LOWFREQWORKCOMPLETEDCRON = "40 15 21 * * ?";
public static final Integer DEFAULT_LOWFREQWORKCOMPLETEDBATCHSIZE = 100;
public static final Integer DEFAULT_LOWFREQWORKCOMPLETEDMAXCOUNT = 500000;
public static final Integer DEFAULT_LOWFREQWORKCOMPLETEDMAXMINUTES = 120;
public static final Boolean DEFAULT_OPTIMIZEINDEXENABLE = true;
public static final String DEFAULT_OPTIMIZEINDEXCRON = "40 15 23 * * ?";
public static final Boolean DEFAULT_HIGHFREQWORKENABLE = true;
public static final String DEFAULT_HIGHFREQWORKCRON = "2 0/2 7-19 * * ?";
public static final Integer DEFAULT_HIGHFREQWORKBATCHSIZE = 500;
public static final Integer DEFAULT_HIGHFREQWORKMAXCOUNT = 5000;
public static final Integer DEFAULT_HIGHFREQWORKMAXMINUTES = 2;
public static final Boolean DEFAULT_HIGHFREQWORKCOMPLETEDENABLE = true;
public static final String DEFAULT_HIGHFREQWORKCOMPLETEDCRON = "2 1/2 7-19 * * ?";
public static final Integer DEFAULT_HIGHFREQWORKCOMPLETEDBATCHSIZE = 500;
public static final Integer DEFAULT_HIGHFREQWORKCOMPLETEDMAXCOUNT = 5000;
public static final Integer DEFAULT_HIGHFREQWORKCOMPLETEDMAXMINUTES = 2;
public static final Boolean DEFAULT_HIGHFREQDOCUMENTENABLE = true;
public static final String DEFAULT_HIGHFREQDOCUMENTCRON = "2 1/2 7-19 * * ?";
public static final Integer DEFAULT_HIGHFREQDOCUMENTBATCHSIZE = 500;
public static final Integer DEFAULT_HIGHFREQDOCUMENTMAXCOUNT = 5000;
public static final Integer DEFAULT_HIGHFREQDOCUMENTMAXMINUTES = 2;
public static final Boolean DEFAULT_SEARCHENABLE = true;
public static final Float DEFAULT_SEARCHTITLEBOOST = 4.0f;
public static final Float DEFAULT_SEARCHSUMMARYBOOST = 3.0f;
public static final Float DEFAULT_SEARCHBODYBOOST = 2.0f;
public static final Float DEFAULT_SEARCHATTACHMENTBOOST = 1.0f;
public static final Integer DEFAULT_SEARCHPAGESIZE = 20;
public static final Integer DEFAULT_SEARCHMAXPAGESIZE = 5000;
public static final Integer DEFAULT_SEARCHMAXHITS = 1000000;
public static final Integer DEFAULT_FACETMAXGROUPS = 100;
public static final String FACETGROUPORDER_KEYASC = "keyAsc";
public static final String FACETGROUPORDER_KEYDESC = "keyDesc";
public static final String FACETGROUPORDER_COUNTASC = "countAsc";
public static final String FACETGROUPORDER_COUNTDESC = "countDesc";
public static final String DEFAULT_FACETGROUPORDER = FACETGROUPORDER_KEYASC;
public static final String DEFAULT_HIGHLIGHTPRE = "";
public static final String DEFAULT_HIGHLIGHTPOST = "";
public static final Integer DEFAULT_HIGHLIGHTFRAGMENTSIZE = 64;
public static final Integer DEFAULT_HIGHLIGHTFRAGMENTCOUNT = 3;
public static final Integer DEFAULT_MORELIKETHISSIZE = 10;
public static final Integer DEFAULT_MORELIKETHISMAXSIZE = 100;
public static final Integer DEFAULT_MORELIKETHISMINTERMFREQ = 2;
public static final Integer DEFAULT_MORELIKETHISMINDOCFREQ = 2;
public static final Float DEFAULT_MORELIKETHISSCORETHRESHOLD = 8.0f;
private static final String UNKNOWN = "unknown";
public static final String DEFAULT_CREATORUNITUNKNOWN = UNKNOWN;
public static final String DEFAULT_CREATORPERSONUNKNOWN = UNKNOWN;
public static final String DEFAULT_CREATORPERSONCIPHER = "系统服务";
@FieldDescribe("索引模式:localDirectory(本地文件系统),hdfsDirectory(hadoop),sharedDirectory(共享文件系统目录).")
@Schema(description = "索引模式:localDirectory(本地文件系统),hdfsDirectory(hadoop),sharedDirectory(共享文件系统目录).")
private String mode;
@FieldDescribe("hadoop文件系统地址.")
@Schema(description = "hadoop文件系统地址.")
private String hdfsDirectoryDefaultFS;
@FieldDescribe("hadoop文件系统目录.")
@Schema(description = "hadoop文件系统目录.")
private String hdfsDirectoryPath;
@FieldDescribe("共享文件系统目录.")
@Schema(description = "共享文件系统目录.")
private String sharedDirectoryPath;
@FieldDescribe("索引分段数量.")
@Schema(description = "索引分段数量.")
private Integer maxSegments;
@FieldDescribe("是否启用优化索引.")
@Schema(description = "是否启用优化索引.")
private Boolean optimizeIndexEnable;
@FieldDescribe("优化索引定时配置.")
@Schema(description = "优化索引定时配置.")
private String optimizeIndexCron;
@FieldDescribe("业务数据最大文本长度阈值,超过此阈值将忽略写入到索引.")
@Schema(description = "业务数据最大文本长度阈值,超过此阈值将忽略写入到索引.")
private Integer dataStringThreshold;
@FieldDescribe("摘要长度.")
@Schema(description = "摘要长度.")
private Integer summaryLength;
@FieldDescribe("附件索引阈值(兆),超过此值的附件不进行索引.")
@Schema(description = "附件索引阈值(兆),超过此值的附件不进行索引.")
private Integer attachmentMaxSize;
@FieldDescribe("是否对流转中工作进行索引.")
@Schema(description = "是否对流转中工作进行索引.")
private Boolean workIndexAttachment;
@FieldDescribe("是否对已完成工作进行索引.")
@Schema(description = "是否对已完成工作进行索引.")
private Boolean workCompletedIndexAttachment;
@FieldDescribe("是否对内容管理文档进行索引.")
@Schema(description = "是否对内容管理文档进行索引.")
private Boolean documentIndexAttachment;
@FieldDescribe("是否启用流转中工作低频索引.")
@Schema(description = "是否启用流转中工作低频索引.")
private Boolean lowFreqWorkEnable;
@FieldDescribe("流转中工作低频索引定时配置.")
@Schema(description = "流转中工作低频索引定时配置.")
private String lowFreqWorkCron;
@FieldDescribe("流转中工作低频索引批量获取大小.")
@Schema(description = "流转中工作低频索引批量获取大小.")
private Integer lowFreqWorkBatchSize;
@FieldDescribe("流转中工作低频索单次最大处理数量.")
@Schema(description = "流转中工作低频索单次最大处理数量.")
private Integer lowFreqWorkMaxCount;
@FieldDescribe("流转中工作低频索单次最大处理时长(分钟).")
@Schema(description = "流转中工作低频索单次最大处理时长(分钟).")
private Integer lowFreqWorkMaxMinutes;
@FieldDescribe("是否启用已完成工作低频索引.")
@Schema(description = "是否启用已完成工作低频索引.")
private Boolean lowFreqWorkCompletedEnable;
@FieldDescribe("已完成工作低频索引定时配置.")
@Schema(description = "已完成工作低频索引定时配置.")
private String lowFreqWorkCompletedCron;
@FieldDescribe("流转中工作低频索引批量获取大小.")
@Schema(description = "流转中工作低频索引批量获取大小.")
private Integer lowFreqWorkCompletedBatchSize;
@FieldDescribe("流转中工作低频索引单次最大处理数量.")
@Schema(description = "流转中工作低频索引单次最大处理数量.")
private Integer lowFreqWorkCompletedMaxCount;
@FieldDescribe("流转中工作低频索引单次最大处理时长(分钟).")
@Schema(description = "流转中工作低频索引单次最大处理时长(分钟).")
private Integer lowFreqWorkCompletedMaxMinutes;
@FieldDescribe("是否启用内容管理文档低频索引.")
@Schema(description = "是否启用内容管理文档低频索引.")
private Boolean lowFreqDocumentEnable;
@FieldDescribe("内容管理文档低频索引定时配置.")
@Schema(description = "内容管理文档低频索引定时配置.")
private String lowFreqDocumentCron;
@FieldDescribe("内容管理文档低频索引批量获取大小.")
@Schema(description = "内容管理文档低频索引批量获取大小.")
private Integer lowFreqDocumentBatchSize;
@FieldDescribe("内容管理文档低频索引单次最大处理数量.")
@Schema(description = "内容管理文档低频索引单次最大处理数量.")
private Integer lowFreqDocumentMaxCount;
@FieldDescribe("内容管理文档低频索引单次最大处理时长(分钟).")
@Schema(description = "内容管理文档低频索引单次最大处理时长(分钟).")
private Integer lowFreqDocumentMaxMinutes;
@FieldDescribe("是否启用流转中工作高频索引.")
@Schema(description = "是否启用流转中工作高频索引.")
private Boolean highFreqWorkEnable;
@FieldDescribe("流转中工作高频索引定时配置.")
@Schema(description = "流转中工作高频索引定时配置.")
private String highFreqWorkCron;
@FieldDescribe("流转中工作高频索引批量获取大小.")
@Schema(description = "流转中工作高频索引批量获取大小.")
private Integer highFreqWorkBatchSize;
@FieldDescribe("流转中工作高频索引单次最大处理数量.")
@Schema(description = "流转中工作高频索引单次最大处理数量.")
private Integer highFreqWorkMaxCount;
@FieldDescribe("流转中工作高频索引单次最大处理时长(分钟).")
@Schema(description = "流转中工作高频索引单次最大处理时长(分钟).")
private Integer highFreqWorkMaxMinutes;
@FieldDescribe("是否启用已完成工作高频索引.")
@Schema(description = "是否启用已完成工作高频索引.")
private Boolean highFreqWorkCompletedEnable;
@FieldDescribe("已完成工作高频索引定时配置.")
@Schema(description = "已完成工作高频索引定时配置.")
private String highFreqWorkCompletedCron;
@FieldDescribe("已完成工作高频索引批量获取大小.")
@Schema(description = "已完成工作高频索引批量获取大小.")
private Integer highFreqWorkCompletedBatchSize;
@FieldDescribe("已完成工作高频索引单次最大处理数量.")
@Schema(description = "已完成工作高频索引单次最大处理数量.")
private Integer highFreqWorkCompletedMaxCount;
@FieldDescribe("已完成工作高频索引单次最大处理时长(分钟).")
@Schema(description = "已完成工作高频索引单次最大处理时长(分钟).")
private Integer highFreqWorkCompletedMaxMinutes;
@FieldDescribe("是否启用内容管理文档高频索引.")
@Schema(description = "是否启用内容管理文档高频索引.")
private Boolean highFreqDocumentEnable;
@FieldDescribe("内容管理文档高频索引定时配置.")
@Schema(description = "内容管理文档高频索引定时配置.")
private String highFreqDocumentCron;
@FieldDescribe("内容管理文档高频索引批量获取大小.")
@Schema(description = "内容管理文档高频索引批量获取大小.")
private Integer highFreqDocumentBatchSize;
@FieldDescribe("内容管理文档高频索引单次最大处理数量.")
@Schema(description = "内容管理文档高频索引单次最大处理数量.")
private Integer highFreqDocumentMaxCount;
@FieldDescribe("内容管理文档高频索引单次最大处理时长(分钟).")
@Schema(description = "内容管理文档高频索引单次最大处理时长(分钟).")
private Integer highFreqDocumentMaxMinutes;
@FieldDescribe("检索内容清理阈值(天).")
@Schema(description = "检索内容清理阈值(天).")
private Integer cleanupThresholdDays;
@FieldDescribe("是否启用搜索.")
@Schema(description = "是否启用搜索.")
private Boolean searchEnable;
@FieldDescribe("搜索标题加权.")
@Schema(description = "搜索标题加权.")
private Float searchTitleBoost;
@FieldDescribe("搜索摘要加权.")
@Schema(description = "搜索摘要加权.")
private Float searchSummaryBoost;
@FieldDescribe("搜索内容加权.")
@Schema(description = "搜索内容加权.")
private Float searchBodyBoost;
@FieldDescribe("搜索附件加权.")
@Schema(description = "搜索附件加权.")
private Float searchAttachmentBoost;
@FieldDescribe("搜索分页大小.")
@Schema(description = "搜索分页大小.")
private Integer searchPageSize;
@FieldDescribe("搜索最大分页大小.")
@Schema(description = "搜索最大分页大小.")
private Integer searchMaxPageSize;
@FieldDescribe("搜索最大命中数量.")
@Schema(description = "搜索最大命中数量.")
private Integer searchMaxHits;
@FieldDescribe("维度最大分组数量.")
@Schema(description = "维度最大分组数量.")
private Integer facetMaxGroups;
@FieldDescribe("维度分组排序方式:keyAsc(依据分组值升序排序),keyDesc(依据分组值奖序排序),countAsc(依据分组数量升序排序),countDesc(依据分组数量降序排序).")
@Schema(description = "流转中工作低频索引定时配置.")
private String facetGroupOrder;
@FieldDescribe("高亮返回片段长度.")
@Schema(description = "高亮返回片段长度.")
private Integer highlightFragmentSize;
@FieldDescribe("高亮返回片段数量.")
@Schema(description = "高亮返回片段数量.")
private Integer highlightFragmentCount;
@FieldDescribe("高亮前缀,默认.")
@Schema(description = "高亮前缀,默认.")
private String highlightPre;
@FieldDescribe("高亮后缀,默认.")
@Schema(description = "高亮后缀,默认.")
private String highlightPost;
@FieldDescribe("相似检索返回文档数量.")
@Schema(description = "相似检索返回文档数量.")
private Integer moreLikeThisSize;
@FieldDescribe("相似检索最大返回文档数量.")
@Schema(description = "相似检索最大返回文档数量.")
private Integer moreLikeThisMaxSize;
@FieldDescribe("相似检索中检索项最小出现多少次即作为有效检索项.")
@Schema(description = "相似检索中检索项最小出现多少次即作为有效检索项.")
private Integer moreLikeThisMinTermFreq;
@FieldDescribe("相似检索中检索项最小出现在多少个文档中即作为有效检索项.")
@Schema(description = "相似检索中检索项最小出现在多少个文档中即作为有效检索项.")
private Integer moreLikeThisMinDocFreq;
@FieldDescribe("相似检索得分阈值,低于此分数则忽略.")
@Schema(description = "相似检索得分阈值,低于此分数则忽略.")
private Float moreLikeThisScoreThreshold;
@FieldDescribe("creatorUnit为空的默认值.")
@Schema(description = "creatorUnit为空的默认值.")
private String creatorUnitUnknown;
@FieldDescribe("creatorPerson为空的默认值.")
@Schema(description = "creatorPerson为空的默认值.")
private String creatorPersonUnknown;
@FieldDescribe("creatorPerson值为cipher时的替换值.")
@Schema(description = "creatorPerson值为cipher时的替换值.")
private String creatorPersonCipher;
public String getCreatorUnitUnknown() {
return StringUtils.isEmpty(this.creatorUnitUnknown) ? DEFAULT_CREATORUNITUNKNOWN
: this.creatorUnitUnknown;
}
public String getCreatorPersonUnknown() {
return StringUtils.isEmpty(this.creatorPersonUnknown) ? DEFAULT_CREATORPERSONUNKNOWN
: this.creatorPersonUnknown;
}
public String getCreatorPersonCipher() {
return StringUtils.isEmpty(this.creatorPersonCipher) ? DEFAULT_CREATORPERSONCIPHER
: this.creatorPersonCipher;
}
public Boolean getOptimizeIndexEnable() {
return null == this.optimizeIndexEnable ? DEFAULT_OPTIMIZEINDEXENABLE : this.optimizeIndexEnable;
}
public String getOptimizeIndexCron() {
if (StringUtils.isNotEmpty(this.optimizeIndexCron)
&& CronExpression.isValidExpression(this.optimizeIndexCron)) {
return this.optimizeIndexCron;
} else {
return DEFAULT_OPTIMIZEINDEXCRON;
}
}
public String getHdfsDirectoryPath() {
return this.adjustHdfsDirectoryPath();
}
private String adjustHdfsDirectoryPath() {
return StringUtils.startsWith(this.hdfsDirectoryPath, "/") ? this.hdfsDirectoryPath
: "/" + hdfsDirectoryPath;
}
public Integer getMaxSegments() {
return NumberTools.nullOrLessThan(this.maxSegments, 1) ? DEFAULT_MAXSEGMENTS
: this.maxSegments;
}
public Boolean getWorkIndexAttachment() {
return (null == this.workIndexAttachment) ? DEFAULT_WORKINDEXATTACHMENT : this.workIndexAttachment;
}
public Boolean getWorkCompletedIndexAttachment() {
return (null == this.workCompletedIndexAttachment) ? DEFAULT_WORKCOMPLETEDINDEXATTACHMENT
: this.workCompletedIndexAttachment;
}
public Boolean getDocumentIndexAttachment() {
return (null == this.documentIndexAttachment) ? DEFAULT_DOCUMENTINDEXATTACHMENT
: this.documentIndexAttachment;
}
public Boolean getHighFreqWorkEnable() {
return null == highFreqWorkEnable ? DEFAULT_HIGHFREQWORKENABLE : this.highFreqWorkEnable;
}
public String getHighFreqWorkCron() {
if (StringUtils.isNotEmpty(this.highFreqWorkCron)
&& CronExpression.isValidExpression(this.highFreqWorkCron)) {
return this.highFreqWorkCron;
} else {
return DEFAULT_HIGHFREQWORKCRON;
}
}
public Integer getHighFreqWorkBatchSize() {
return NumberTools.nullOrLessThan(this.highFreqWorkBatchSize, 1) ? DEFAULT_HIGHFREQWORKBATCHSIZE
: this.highFreqWorkBatchSize;
}
public Integer getHighFreqWorkMaxCount() {
return NumberTools.nullOrLessThan(this.highFreqWorkMaxCount, 1) ? DEFAULT_HIGHFREQWORKMAXCOUNT
: this.highFreqWorkMaxCount;
}
public Integer getHighFreqWorkMaxMinutes() {
return NumberTools.nullOrLessThan(this.highFreqWorkMaxMinutes, 1) ? DEFAULT_HIGHFREQWORKMAXMINUTES
: this.highFreqWorkMaxMinutes;
}
public Boolean getLowFreqWorkEnable() {
return null == lowFreqWorkEnable ? DEFAULT_LOWFREQWORKENABLE : this.lowFreqWorkEnable;
}
public String getLowFreqWorkCron() {
if (StringUtils.isNotEmpty(this.lowFreqWorkCron)
&& CronExpression.isValidExpression(this.lowFreqWorkCron)) {
return this.lowFreqWorkCron;
} else {
return DEFAULT_LOWFREQWORKCRON;
}
}
public Integer getLowFreqWorkBatchSize() {
return NumberTools.nullOrLessThan(this.lowFreqWorkBatchSize, 1) ? DEFAULT_LOWFREQWORKBATCHSIZE
: this.lowFreqWorkBatchSize;
}
public Integer getLowFreqWorkMaxCount() {
return NumberTools.nullOrLessThan(this.lowFreqWorkMaxCount, 1) ? DEFAULT_LOWFREQWORKMAXCOUNT
: this.lowFreqWorkMaxCount;
}
public Integer getLowFreqWorkMaxMinutes() {
return NumberTools.nullOrLessThan(this.lowFreqWorkMaxMinutes, 1) ? DEFAULT_LOWFREQWORKMAXMINUTES
: this.lowFreqWorkMaxMinutes;
}
public Integer getMoreLikeThisSize() {
return NumberTools.nullOrLessThan(this.moreLikeThisSize, 1) ? DEFAULT_MORELIKETHISSIZE
: this.moreLikeThisSize;
}
public Integer getMoreLikeThisMaxSize() {
return NumberTools.nullOrLessThan(this.moreLikeThisMaxSize, 1) ? DEFAULT_MORELIKETHISMAXSIZE
: this.moreLikeThisMaxSize;
}
public Integer getMoreLikeThisMinTermFreq() {
return NumberTools.nullOrLessThan(this.moreLikeThisMinTermFreq, 1) ? DEFAULT_MORELIKETHISMINTERMFREQ
: this.moreLikeThisMinTermFreq;
}
public Integer getMoreLikeThisMinDocFreq() {
return NumberTools.nullOrLessThan(this.moreLikeThisMinDocFreq, 1) ? DEFAULT_MORELIKETHISMINDOCFREQ
: this.moreLikeThisMinDocFreq;
}
public Float getMoreLikeThisScoreThreshold() {
return NumberTools.nullOrLessThan(this.moreLikeThisScoreThreshold, 0f) ? DEFAULT_MORELIKETHISSCORETHRESHOLD
: this.moreLikeThisScoreThreshold;
}
public Integer getHighlightFragmentSize() {
return NumberTools.nullOrLessThan(this.highlightFragmentSize, 1) ? DEFAULT_HIGHLIGHTFRAGMENTSIZE
: this.highlightFragmentSize;
}
public Integer getHighlightFragmentCount() {
return NumberTools.nullOrLessThan(this.highlightFragmentCount, 1) ? DEFAULT_HIGHLIGHTFRAGMENTCOUNT
: this.highlightFragmentCount;
}
public String getHighlightPre() {
return StringUtils.isEmpty(this.highlightPre) ? DEFAULT_HIGHLIGHTPRE : this.highlightPre;
}
public String getHighlightPost() {
return StringUtils.isEmpty(this.highlightPost) ? DEFAULT_HIGHLIGHTPOST : this.highlightPost;
}
public String getFacetGroupOrder() {
return StringUtils.isBlank(facetGroupOrder) ? DEFAULT_FACETGROUPORDER
: facetGroupOrder;
}
public Integer getFacetMaxGroups() {
return NumberTools.nullOrLessThan(this.facetMaxGroups, 1) ? DEFAULT_FACETMAXGROUPS
: this.facetMaxGroups;
}
public Integer getSearchMaxHits() {
return NumberTools.nullOrLessThan(searchMaxHits, -1) ? DEFAULT_SEARCHMAXHITS : this.searchMaxHits;
}
public Integer getSearchPageSize() {
return NumberTools.nullOrLessThan(searchPageSize, 1) ? DEFAULT_SEARCHPAGESIZE : searchPageSize;
}
public Integer getSearchMaxPageSize() {
return NumberTools.nullOrLessThan(searchMaxPageSize, 1) ? DEFAULT_SEARCHMAXPAGESIZE : searchMaxPageSize;
}
public Float getSearchTitleBoost() {
return NumberTools.nullOrLessThan(searchTitleBoost, 0) ? DEFAULT_SEARCHTITLEBOOST : this.searchTitleBoost;
}
public Float getSearchSummaryBoost() {
return NumberTools.nullOrLessThan(searchSummaryBoost, 0) ? DEFAULT_SEARCHSUMMARYBOOST
: this.searchSummaryBoost;
}
public Float getSearchBodyBoost() {
return NumberTools.nullOrLessThan(searchBodyBoost, 0) ? DEFAULT_SEARCHBODYBOOST : this.searchBodyBoost;
}
public Float getSearchAttachmentBoost() {
return NumberTools.nullOrLessThan(searchAttachmentBoost, 0) ? DEFAULT_SEARCHATTACHMENTBOOST
: this.searchAttachmentBoost;
}
public Boolean getSearchEnable() {
return null == searchEnable ? DEFAULT_SEARCHENABLE : this.searchEnable;
}
public String getLowFreqWorkCompletedCron() {
if (StringUtils.isNotEmpty(this.lowFreqWorkCompletedCron)
&& CronExpression.isValidExpression(this.lowFreqWorkCompletedCron)) {
return this.lowFreqWorkCompletedCron;
} else {
return DEFAULT_LOWFREQWORKCOMPLETEDCRON;
}
}
public String getLowFreqDocumentCron() {
if (StringUtils.isNotEmpty(this.lowFreqDocumentCron)
&& CronExpression.isValidExpression(this.lowFreqDocumentCron)) {
return this.lowFreqDocumentCron;
} else {
return DEFAULT_LOWFREQDOCUMENTCRON;
}
}
public String getHighFreqWorkCompletedCron() {
if (StringUtils.isNotEmpty(this.highFreqWorkCompletedCron)
&& CronExpression.isValidExpression(this.highFreqWorkCompletedCron)) {
return this.highFreqWorkCompletedCron;
} else {
return DEFAULT_HIGHFREQWORKCOMPLETEDCRON;
}
}
public String getHighFreqDocumentCron() {
if (StringUtils.isNotEmpty(this.highFreqDocumentCron)
&& CronExpression.isValidExpression(this.highFreqDocumentCron)) {
return this.highFreqDocumentCron;
} else {
return DEFAULT_HIGHFREQDOCUMENTCRON;
}
}
public String getSharedDirectoryPath() {
return StringUtils.isBlank(sharedDirectoryPath)
? DEFAULT_SHAREDDIRECTORYPATH
: adjustSharedDirectoryPath();
}
private String adjustSharedDirectoryPath() {
return StringUtils.startsWith(this.sharedDirectoryPath, "/") ? this.sharedDirectoryPath
: "/" + sharedDirectoryPath;
}
public Integer getCleanupThresholdDays() {
return NumberTools.nullOrLessThan(cleanupThresholdDays, 1)
? DEFAULT_CLEANUPTHRESHOLDDAYS
: this.cleanupThresholdDays;
}
public Integer getLowFreqWorkCompletedMaxMinutes() {
return NumberTools.nullOrLessThan(lowFreqWorkCompletedMaxMinutes, 1)
? DEFAULT_LOWFREQWORKCOMPLETEDMAXMINUTES
: this.lowFreqWorkCompletedMaxMinutes;
}
public Integer getLowFreqWorkCompletedMaxCount() {
return NumberTools.nullOrLessThan(lowFreqWorkCompletedMaxCount, 1)
? DEFAULT_LOWFREQWORKCOMPLETEDMAXCOUNT
: this.lowFreqWorkCompletedMaxCount;
}
public Integer getLowFreqWorkCompletedBatchSize() {
return NumberTools.nullOrLessThan(lowFreqWorkCompletedBatchSize, 1)
? DEFAULT_LOWFREQWORKCOMPLETEDBATCHSIZE
: this.lowFreqWorkCompletedBatchSize;
}
public Boolean getLowFreqWorkCompletedEnable() {
return null == lowFreqWorkCompletedEnable ? DEFAULT_LOWFREQWORKCOMPLETEDENABLE
: this.lowFreqWorkCompletedEnable;
}
public Integer getLowFreqDocumentMaxMinutes() {
return NumberTools.nullOrLessThan(this.lowFreqDocumentMaxMinutes, 1)
? DEFAULT_LOWFREQDOCUMENTMAXMINUTES
: this.lowFreqDocumentMaxMinutes;
}
public Integer getLowFreqDocumentMaxCount() {
return NumberTools.nullOrLessThan(lowFreqDocumentMaxCount, 1)
? DEFAULT_LOWFREQDOCUMENTMAXCOUNT
: this.lowFreqDocumentMaxCount;
}
public Integer getLowFreqDocumentBatchSize() {
return NumberTools.nullOrLessThan(lowFreqDocumentBatchSize, 1)
? DEFAULT_LOWFREQDOCUMENTBATCHSIZE
: this.lowFreqDocumentBatchSize;
}
public Boolean getLowFreqDocumentEnable() {
return null == lowFreqDocumentEnable ? DEFAULT_LOWFREQDOCUMENTENABLE
: this.lowFreqDocumentEnable;
}
public Integer getHighFreqDocumentMaxMinutes() {
return NumberTools.nullOrLessThan(this.highFreqDocumentMaxMinutes, 1)
? DEFAULT_HIGHFREQDOCUMENTMAXMINUTES
: this.highFreqDocumentMaxMinutes;
}
public Integer getHighFreqDocumentMaxCount() {
return NumberTools.nullOrLessThan(highFreqDocumentMaxCount, 1)
? DEFAULT_HIGHFREQDOCUMENTMAXCOUNT
: this.highFreqDocumentMaxCount;
}
public Integer getHighFreqDocumentBatchSize() {
return NumberTools.nullOrLessThan(highFreqDocumentBatchSize, 1)
? DEFAULT_HIGHFREQDOCUMENTBATCHSIZE
: this.highFreqDocumentBatchSize;
}
public Boolean getHighFreqDocumentEnable() {
return null == highFreqDocumentEnable ? DEFAULT_HIGHFREQDOCUMENTENABLE
: this.highFreqDocumentEnable;
}
public Integer getHighFreqWorkCompletedMaxMinutes() {
return NumberTools.nullOrLessThan(this.highFreqWorkCompletedMaxMinutes, 1)
? DEFAULT_HIGHFREQWORKCOMPLETEDMAXMINUTES
: this.highFreqWorkCompletedMaxMinutes;
}
public Integer getHighFreqWorkCompletedMaxCount() {
return NumberTools.nullOrLessThan(highFreqWorkCompletedMaxCount, 1)
? DEFAULT_HIGHFREQWORKCOMPLETEDMAXCOUNT
: this.highFreqWorkCompletedMaxCount;
}
public Integer getHighFreqWorkCompletedBatchSize() {
return NumberTools.nullOrLessThan(highFreqWorkCompletedBatchSize, 1)
? DEFAULT_HIGHFREQWORKCOMPLETEDBATCHSIZE
: this.highFreqWorkCompletedBatchSize;
}
public Boolean getHighFreqWorkCompletedEnable() {
return null == highFreqWorkCompletedEnable ? DEFAULT_HIGHFREQWORKCOMPLETEDENABLE
: this.highFreqWorkCompletedEnable;
}
public Integer getAttachmentMaxSize() {
return NumberTools.nullOrLessThan(this.attachmentMaxSize, 0) ? DEFAULT_ATTACHMENTMAXSIZE
: this.attachmentMaxSize;
}
public Integer getSummaryLength() {
return NumberTools.nullOrLessThan(this.summaryLength, 1) ? DEFAULT_SUMMARYLENGTH : this.summaryLength;
}
public Integer getDataStringThreshold() {
return NumberTools.nullOrLessThan(this.dataStringThreshold, 1) ? DEFAULT_DATASTRINGTHRESHOLD
: this.dataStringThreshold;
}
public String getMode() {
if (StringUtils.equalsIgnoreCase(MODE_HDFSDIRECTORY, this.mode)) {
return MODE_HDFSDIRECTORY;
}
if (StringUtils.equalsIgnoreCase(MODE_SHAREDDIRECTORY, this.mode)) {
return MODE_SHAREDDIRECTORY;
} else {
return MODE_LOCALDIRECTORY;
}
}
public String getHdfsDirectoryDefaultFS() {
return StringUtils.isEmpty(this.hdfsDirectoryDefaultFS) ? DEFAULT_HDFSDIRECTORYDEFAULTFS
: this.hdfsDirectoryDefaultFS;
}
}
}