Commit 7cb6f90c authored by Noel Alonso's avatar Noel Alonso
Browse files

Merge branch 'dev' into 'master'

Actualiza imagen de compilación

See merge request redmic-project/server/library/elasticsearch-lib!1
parents e9f9928b 0c5d146a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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:
+3 −1
Original line number Diff line number Diff line
@@ -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>
@@ -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 -->
+4 −75
Original line number Diff line number Diff line
@@ -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;

@@ -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",
@@ -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)
+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);
}
+2 −24
Original line number Diff line number Diff line
@@ -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;
@@ -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;

@@ -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());
	}
@@ -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));
@@ -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();
@@ -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