Loading .gitlab-ci.yml +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ stages: maven-build: stage: build image: redmic/maven-gitlab image: registry.gitlab.com/redmic-project/docker/maven variables: MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository" only: Loading pom.xml +3 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ <!-- Others --> <commons-io.version>1.3.2</commons-io.version> <elasticsearch.x-pack.version>5.6.1</elasticsearch.x-pack.version> <!-- Environment variables --> <env.MAVEN_REPO_URL>https://artifactory.redmic.net/artifactory</env.MAVEN_REPO_URL> Loading @@ -51,7 +52,8 @@ <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <artifactId>x-pack-transport</artifactId> <version>${elasticsearch.x-pack.version}</version> </dependency> <!-- Other --> Loading src/main/java/es/redmic/elasticsearchlib/common/query/DataQueryUtils.java +4 −75 Original line number Diff line number Diff line Loading @@ -13,7 +13,6 @@ import org.elasticsearch.index.query.GeoShapeQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.RangeQueryBuilder; import org.elasticsearch.join.query.JoinQueryBuilders; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptType; Loading @@ -38,7 +37,6 @@ public abstract class DataQueryUtils extends SimpleQueryUtils { SCRIPT_ENGINE = "groovy", SEARCH_BY_Z_RANGE_SCRIPT = "search-by-z-range", SEARCH_NESTED_BY_Z_RANGE_SCRIPT = "search-nested-by-z-range", PARENT = "activity", QFLAG_QUERY_FIELD = "qFlags", VFLAG_QUERY_FIELD = "vFlags", Loading Loading @@ -175,94 +173,25 @@ public abstract class DataQueryUtils extends SimpleQueryUtils { } @SuppressWarnings("serial") public static BoolQueryBuilder getItemsQuery(String id, String parentId, List<Long> accessibilityIds) { public static BoolQueryBuilder getItemsQuery(String id) { ArrayList<String> ids = new ArrayList<String>() { { add(id); } }; return getItemsQuery(ids, parentId, accessibilityIds); return getItemsQuery(ids); } public static BoolQueryBuilder getItemsQuery(List<String> ids, String parentId, List<Long> accessibilityIds) { public static BoolQueryBuilder getItemsQuery(List<String> ids) { BoolQueryBuilder query = QueryBuilders.boolQuery(); if (accessibilityIds != null && accessibilityIds.size() > 0 && parentId != null) query.must(getQueryOnParent(parentId, accessibilityIds)); else if (accessibilityIds != null && accessibilityIds.size() > 0 && parentId == null) query.must(getAccessibilityQueryOnParent(accessibilityIds)); else if (parentId != null) query.must(getQueryByParent(parentId)); query.must(QueryBuilders.idsQuery().addIds(ids.toArray(new String[ids.size()]))); query.must(QueryBuilders.termsQuery("id", ids.toArray(new String[ids.size()]))); return query; } public static QueryBuilder getHierarchicalQuery(DataQueryDTO queryDTO, String parentId) { List<Long> accessibilityIds = queryDTO.getAccessibilityIds(); if ((accessibilityIds == null || accessibilityIds.size() == 0) && parentId == null) return null; if (accessibilityIds == null || accessibilityIds.size() == 0) return getQueryByParent(parentId); if (parentId == null) return getAccessibilityQueryOnParent(accessibilityIds); return getQueryOnParent(parentId, accessibilityIds); } public static QueryBuilder getQueryOnParent(String parentId, List<Long> accessibilityIds) { if (parentId == null || accessibilityIds == null || accessibilityIds.size() == 0) return null; return JoinQueryBuilders.hasParentQuery(PARENT, QueryBuilders.boolQuery() .must(QueryBuilders.termQuery("id", parentId)).must(getAccessibilityQuery(accessibilityIds)), true); } public static QueryBuilder getQueryByParent(String parentId) { if (parentId == null) return null; return JoinQueryBuilders.hasParentQuery(PARENT, QueryBuilders.termQuery("id", parentId), true); } public static QueryBuilder getAccessibilityQueryOnParent(List<Long> accessibilityIds) { if (accessibilityIds == null || accessibilityIds.size() == 0) return null; return JoinQueryBuilders.hasParentQuery(PARENT, getAccessibilityQuery(accessibilityIds), true); } public static QueryBuilder getDocumentQueryOnParent(String documentId) { if (documentId == null) return null; List<String> documentIds = new ArrayList<>(); documentIds.add(documentId); return getDocumentsQueryOnParent(documentIds); } public static QueryBuilder getDocumentsQueryOnParent(List<String> documentIds) { if (documentIds == null || documentIds.size() == 0) return null; return JoinQueryBuilders.hasParentQuery(PARENT, QueryBuilders.nestedQuery("documents", QueryBuilders.termsQuery("documents.document.id", documentIds), ScoreMode.Avg), true); } public static QueryBuilder getAccessibilityQuery(List<Long> accessibilityIds) { if (accessibilityIds == null) Loading src/main/java/es/redmic/elasticsearchlib/common/repository/IRWBaseESRepository.java 0 → 100644 +17 −0 Original line number Diff line number Diff line package es.redmic.elasticsearchlib.common.repository; import org.elasticsearch.common.xcontent.XContentBuilder; import es.redmic.models.es.common.dto.EventApplicationResult; import es.redmic.models.es.common.model.BaseES; public interface IRWBaseESRepository<TModel extends BaseES<?>> { EventApplicationResult save(TModel modelToIndex); EventApplicationResult update(TModel modelToIndex); EventApplicationResult update(String id, XContentBuilder doc); EventApplicationResult delete(String id); } src/main/java/es/redmic/elasticsearchlib/common/repository/RBaseESRepository.java +2 −24 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.BaseAggregationBuilder; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; import org.elasticsearch.search.sort.SortBuilder; import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortOrder; Loading Loading @@ -77,8 +76,6 @@ public abstract class RBaseESRepository<TModel extends BaseES<?>, TQueryDTO exte private String[] TYPE; protected Integer SUGGESTSIZE = 10; protected String PRETAGS = "<b>"; protected String POSTTAGS = "</b>"; protected Integer MAX_SIZE = 100000; Loading Loading @@ -235,7 +232,7 @@ public abstract class RBaseESRepository<TModel extends BaseES<?>, TQueryDTO exte } requestBuilder.setQuery(query).setSize((size == null) ? SUGGESTSIZE : size) .highlighter(getHighlightBuilder(queryDTO.getSuggest().getSearchFields())); .highlighter(ElasticSearchUtils.getHighlightBuilder(queryDTO.getSuggest().getSearchFields())); return ElasticSearchUtils.createHighlightResponse(requestBuilder.execute().actionGet()); } Loading Loading @@ -377,7 +374,7 @@ public abstract class RBaseESRepository<TModel extends BaseES<?>, TQueryDTO exte if (queryDTO.getText() != null && (queryDTO.getText().getHighlightFields() == null || queryDTO.getText().getHighlightFields().length == 0)) { requestBuilder.highlighter(getHighlightBuilder(queryDTO.getText().getHighlightFields())); requestBuilder.highlighter(ElasticSearchUtils.getHighlightBuilder(queryDTO.getText().getHighlightFields())); } requestBuilder.setFrom(queryDTO.getFrom()); requestBuilder.setSize(getSize(queryDTO, queryBuilder)); Loading Loading @@ -409,20 +406,6 @@ public abstract class RBaseESRepository<TModel extends BaseES<?>, TQueryDTO exte return sorts; } private HighlightBuilder getHighlightBuilder(String[] highlightFields) { HighlightBuilder highlightBuilder = new HighlightBuilder(); for (String field : highlightFields) { highlightBuilder.field(field); } highlightBuilder.preTags(PRETAGS); highlightBuilder.postTags(POSTTAGS); return highlightBuilder; } protected MultiSearchResponse getMultiFindResponses(List<SearchRequestBuilder> searchs) { MultiSearchRequestBuilder sr = ESProvider.getClient().prepareMultiSearch(); Loading Loading @@ -684,11 +667,6 @@ public abstract class RBaseESRepository<TModel extends BaseES<?>, TQueryDTO exte return (W) ElasticSearchUtils.parseMGetHit(result, wrapperType); } @SuppressWarnings("unchecked") protected Map<String, Object> convertTModelToSource(TModel modelToIndex) { return objectMapper.convertValue(modelToIndex, Map.class); } public String[] getIndex() { return INDEX; } Loading Loading
.gitlab-ci.yml +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ stages: maven-build: stage: build image: redmic/maven-gitlab image: registry.gitlab.com/redmic-project/docker/maven variables: MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository" only: Loading
pom.xml +3 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ <!-- Others --> <commons-io.version>1.3.2</commons-io.version> <elasticsearch.x-pack.version>5.6.1</elasticsearch.x-pack.version> <!-- Environment variables --> <env.MAVEN_REPO_URL>https://artifactory.redmic.net/artifactory</env.MAVEN_REPO_URL> Loading @@ -51,7 +52,8 @@ <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <artifactId>x-pack-transport</artifactId> <version>${elasticsearch.x-pack.version}</version> </dependency> <!-- Other --> Loading
src/main/java/es/redmic/elasticsearchlib/common/query/DataQueryUtils.java +4 −75 Original line number Diff line number Diff line Loading @@ -13,7 +13,6 @@ import org.elasticsearch.index.query.GeoShapeQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.RangeQueryBuilder; import org.elasticsearch.join.query.JoinQueryBuilders; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptType; Loading @@ -38,7 +37,6 @@ public abstract class DataQueryUtils extends SimpleQueryUtils { SCRIPT_ENGINE = "groovy", SEARCH_BY_Z_RANGE_SCRIPT = "search-by-z-range", SEARCH_NESTED_BY_Z_RANGE_SCRIPT = "search-nested-by-z-range", PARENT = "activity", QFLAG_QUERY_FIELD = "qFlags", VFLAG_QUERY_FIELD = "vFlags", Loading Loading @@ -175,94 +173,25 @@ public abstract class DataQueryUtils extends SimpleQueryUtils { } @SuppressWarnings("serial") public static BoolQueryBuilder getItemsQuery(String id, String parentId, List<Long> accessibilityIds) { public static BoolQueryBuilder getItemsQuery(String id) { ArrayList<String> ids = new ArrayList<String>() { { add(id); } }; return getItemsQuery(ids, parentId, accessibilityIds); return getItemsQuery(ids); } public static BoolQueryBuilder getItemsQuery(List<String> ids, String parentId, List<Long> accessibilityIds) { public static BoolQueryBuilder getItemsQuery(List<String> ids) { BoolQueryBuilder query = QueryBuilders.boolQuery(); if (accessibilityIds != null && accessibilityIds.size() > 0 && parentId != null) query.must(getQueryOnParent(parentId, accessibilityIds)); else if (accessibilityIds != null && accessibilityIds.size() > 0 && parentId == null) query.must(getAccessibilityQueryOnParent(accessibilityIds)); else if (parentId != null) query.must(getQueryByParent(parentId)); query.must(QueryBuilders.idsQuery().addIds(ids.toArray(new String[ids.size()]))); query.must(QueryBuilders.termsQuery("id", ids.toArray(new String[ids.size()]))); return query; } public static QueryBuilder getHierarchicalQuery(DataQueryDTO queryDTO, String parentId) { List<Long> accessibilityIds = queryDTO.getAccessibilityIds(); if ((accessibilityIds == null || accessibilityIds.size() == 0) && parentId == null) return null; if (accessibilityIds == null || accessibilityIds.size() == 0) return getQueryByParent(parentId); if (parentId == null) return getAccessibilityQueryOnParent(accessibilityIds); return getQueryOnParent(parentId, accessibilityIds); } public static QueryBuilder getQueryOnParent(String parentId, List<Long> accessibilityIds) { if (parentId == null || accessibilityIds == null || accessibilityIds.size() == 0) return null; return JoinQueryBuilders.hasParentQuery(PARENT, QueryBuilders.boolQuery() .must(QueryBuilders.termQuery("id", parentId)).must(getAccessibilityQuery(accessibilityIds)), true); } public static QueryBuilder getQueryByParent(String parentId) { if (parentId == null) return null; return JoinQueryBuilders.hasParentQuery(PARENT, QueryBuilders.termQuery("id", parentId), true); } public static QueryBuilder getAccessibilityQueryOnParent(List<Long> accessibilityIds) { if (accessibilityIds == null || accessibilityIds.size() == 0) return null; return JoinQueryBuilders.hasParentQuery(PARENT, getAccessibilityQuery(accessibilityIds), true); } public static QueryBuilder getDocumentQueryOnParent(String documentId) { if (documentId == null) return null; List<String> documentIds = new ArrayList<>(); documentIds.add(documentId); return getDocumentsQueryOnParent(documentIds); } public static QueryBuilder getDocumentsQueryOnParent(List<String> documentIds) { if (documentIds == null || documentIds.size() == 0) return null; return JoinQueryBuilders.hasParentQuery(PARENT, QueryBuilders.nestedQuery("documents", QueryBuilders.termsQuery("documents.document.id", documentIds), ScoreMode.Avg), true); } public static QueryBuilder getAccessibilityQuery(List<Long> accessibilityIds) { if (accessibilityIds == null) Loading
src/main/java/es/redmic/elasticsearchlib/common/repository/IRWBaseESRepository.java 0 → 100644 +17 −0 Original line number Diff line number Diff line package es.redmic.elasticsearchlib.common.repository; import org.elasticsearch.common.xcontent.XContentBuilder; import es.redmic.models.es.common.dto.EventApplicationResult; import es.redmic.models.es.common.model.BaseES; public interface IRWBaseESRepository<TModel extends BaseES<?>> { EventApplicationResult save(TModel modelToIndex); EventApplicationResult update(TModel modelToIndex); EventApplicationResult update(String id, XContentBuilder doc); EventApplicationResult delete(String id); }
src/main/java/es/redmic/elasticsearchlib/common/repository/RBaseESRepository.java +2 −24 Original line number Diff line number Diff line Loading @@ -32,7 +32,6 @@ import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.BaseAggregationBuilder; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; import org.elasticsearch.search.sort.SortBuilder; import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortOrder; Loading Loading @@ -77,8 +76,6 @@ public abstract class RBaseESRepository<TModel extends BaseES<?>, TQueryDTO exte private String[] TYPE; protected Integer SUGGESTSIZE = 10; protected String PRETAGS = "<b>"; protected String POSTTAGS = "</b>"; protected Integer MAX_SIZE = 100000; Loading Loading @@ -235,7 +232,7 @@ public abstract class RBaseESRepository<TModel extends BaseES<?>, TQueryDTO exte } requestBuilder.setQuery(query).setSize((size == null) ? SUGGESTSIZE : size) .highlighter(getHighlightBuilder(queryDTO.getSuggest().getSearchFields())); .highlighter(ElasticSearchUtils.getHighlightBuilder(queryDTO.getSuggest().getSearchFields())); return ElasticSearchUtils.createHighlightResponse(requestBuilder.execute().actionGet()); } Loading Loading @@ -377,7 +374,7 @@ public abstract class RBaseESRepository<TModel extends BaseES<?>, TQueryDTO exte if (queryDTO.getText() != null && (queryDTO.getText().getHighlightFields() == null || queryDTO.getText().getHighlightFields().length == 0)) { requestBuilder.highlighter(getHighlightBuilder(queryDTO.getText().getHighlightFields())); requestBuilder.highlighter(ElasticSearchUtils.getHighlightBuilder(queryDTO.getText().getHighlightFields())); } requestBuilder.setFrom(queryDTO.getFrom()); requestBuilder.setSize(getSize(queryDTO, queryBuilder)); Loading Loading @@ -409,20 +406,6 @@ public abstract class RBaseESRepository<TModel extends BaseES<?>, TQueryDTO exte return sorts; } private HighlightBuilder getHighlightBuilder(String[] highlightFields) { HighlightBuilder highlightBuilder = new HighlightBuilder(); for (String field : highlightFields) { highlightBuilder.field(field); } highlightBuilder.preTags(PRETAGS); highlightBuilder.postTags(POSTTAGS); return highlightBuilder; } protected MultiSearchResponse getMultiFindResponses(List<SearchRequestBuilder> searchs) { MultiSearchRequestBuilder sr = ESProvider.getClient().prepareMultiSearch(); Loading Loading @@ -684,11 +667,6 @@ public abstract class RBaseESRepository<TModel extends BaseES<?>, TQueryDTO exte return (W) ElasticSearchUtils.parseMGetHit(result, wrapperType); } @SuppressWarnings("unchecked") protected Map<String, Object> convertTModelToSource(TModel modelToIndex) { return objectMapper.convertValue(modelToIndex, Map.class); } public String[] getIndex() { return INDEX; } Loading