Commit 61450e57 authored by Noel Alonso's avatar Noel Alonso
Browse files

Reubica función en utils + añade .suggest

En los casos en los que sea necesario, añade .suggest a los campos
donde se quiere hacer highlight
parent 3cd44bb8
Loading
Loading
Loading
Loading
+2 −19
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();
+18 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.BaseAggregationBuilder;
import org.elasticsearch.search.aggregations.bucket.terms.Terms.Order;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
import org.elasticsearch.search.fetch.subphase.highlight.HighlightField;
import org.elasticsearch.search.sort.SortBuilder;
import org.elasticsearch.search.sort.SortBuilders;
@@ -49,6 +50,9 @@ public class ElasticSearchUtils {
	protected final static String SCRIPT_ENGINE = "groovy";
	protected final static String SUGGESTSUFFIX = ".suggest";

	protected final static String PRETAGS = "<b>";
	protected final static String POSTTAGS = "</b>";

	@Autowired
	ObjectMapper jacksonMapper;

@@ -269,4 +273,18 @@ public class ElasticSearchUtils {

		return suggestFields;
	}

	public static HighlightBuilder getHighlightBuilder(String[] highlightFields) {

		HighlightBuilder highlightBuilder = new HighlightBuilder();

		for (String field : highlightFields) {
			highlightBuilder.field(field.contains(SUGGESTSUFFIX) ? field : (field + SUGGESTSUFFIX));
		}

		highlightBuilder.preTags(PRETAGS);
		highlightBuilder.postTags(POSTTAGS);

		return highlightBuilder;
	}
}