Put elastic search index into the configurations

This commit is contained in:
George Kalampokis 2021-04-27 16:53:15 +03:00
parent 77bcb95ad7
commit 501ca9fcc2
5 changed files with 26 additions and 16 deletions

View File

@ -26,6 +26,7 @@ import org.elasticsearch.search.aggregations.bucket.nested.ParsedNested;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Service;
import java.io.IOException;
@ -37,10 +38,12 @@ import java.util.stream.Stream;
public class DatasetRepository extends ElasticRepository<Dataset, DatasetCriteria> {
private final DmpRepository dmpRepository;
private final Environment environment;
public DatasetRepository(RestHighLevelClient client, DmpRepository dmpRepository) {
public DatasetRepository(RestHighLevelClient client, DmpRepository dmpRepository, Environment environment) {
super(client);
this.dmpRepository = dmpRepository;
this.environment = environment;
}
@Override
@ -64,7 +67,7 @@ public class DatasetRepository extends ElasticRepository<Dataset, DatasetCriteri
}
dmp.getDatasets().add(entity);
}
IndexRequest request = new IndexRequest("dmps").id(dmp.getId().toString()).source(dmp.toElasticEntity(builder));//new IndexRequest("datasets", "doc", entity.getId()).source(entity.toElasticEntity(builder));
IndexRequest request = new IndexRequest(this.environment.getProperty("elasticsearch.index")).id(dmp.getId().toString()).source(dmp.toElasticEntity(builder));//new IndexRequest("datasets", "doc", entity.getId()).source(entity.toElasticEntity(builder));
this.getClient().index(request, RequestOptions.DEFAULT);
return entity;
}
@ -74,7 +77,7 @@ public class DatasetRepository extends ElasticRepository<Dataset, DatasetCriteri
@Override
public Dataset findDocument(String id) throws IOException {
if (this.getClient() != null) {
SearchRequest searchRequest = new SearchRequest("dmps");
SearchRequest searchRequest = new SearchRequest(this.environment.getProperty("elasticsearch.index"));
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery().should(QueryBuilders.termQuery("datasets.id.keyword", id));
NestedQueryBuilder nestedQueryBuilder = QueryBuilders.nestedQuery( "datasets", boolQuery, ScoreMode.Avg).innerHit(new InnerHitBuilder());
@ -95,7 +98,7 @@ public class DatasetRepository extends ElasticRepository<Dataset, DatasetCriteri
@Override
public List<Dataset> query(DatasetCriteria criteria) throws IOException {
if (this.getClient() != null) {
SearchRequest searchRequest = new SearchRequest("dmps");
SearchRequest searchRequest = new SearchRequest(this.environment.getProperty("elasticsearch.index"));
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
/*CountRequest countRequest = new CountRequest("dmps").routing("datasets").routing("id");
@ -103,7 +106,7 @@ public class DatasetRepository extends ElasticRepository<Dataset, DatasetCriteri
CountResponse countResponse = getClient().count(countRequest, RequestOptions.DEFAULT);
Long count = countResponse.getCount();*/
SearchRequest countRequest = new SearchRequest("dmps");
SearchRequest countRequest = new SearchRequest(this.environment.getProperty("elasticsearch.index"));
NestedAggregationBuilder nestedAggregationBuilder = AggregationBuilders.nested("by_dataset", "datasets");
FiltersAggregationBuilder filtersAggregationBuilder = AggregationBuilders.filters("dataset_query", QueryBuilders.boolQuery().mustNot(QueryBuilders.termsQuery("datasets.status.keyword", Stream.of(Dataset.Status.DELETED.getValue(), Dataset.Status.CANCELED.getValue()).collect(Collectors.toList()))));
nestedAggregationBuilder.subAggregation(filtersAggregationBuilder);
@ -193,7 +196,7 @@ public class DatasetRepository extends ElasticRepository<Dataset, DatasetCriteri
@Override
public boolean exists() throws IOException {
if (this.getClient() != null) {
GetIndexRequest request = new GetIndexRequest("dmps");
GetIndexRequest request = new GetIndexRequest(this.environment.getProperty("elasticsearch.index"));
// request.indices("datasets");
return this.getClient().indices().exists(request, RequestOptions.DEFAULT);
}

View File

@ -26,6 +26,7 @@ import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Service;
import java.io.IOException;
@ -37,9 +38,12 @@ import java.util.stream.Stream;
public class DmpRepository extends ElasticRepository<Dmp, DmpCriteria> {
private static final Logger logger = LoggerFactory.getLogger(DmpRepository.class);
private final Environment environment;
@Autowired
public DmpRepository(RestHighLevelClient client) {
public DmpRepository(RestHighLevelClient client, Environment environment) {
super(client);
this.environment = environment;
}
private void generateMapping() throws IOException {
@ -52,7 +56,7 @@ public class DmpRepository extends ElasticRepository<Dmp, DmpCriteria> {
builder.endObject();
builder.endObject();
builder.endObject();
PutMappingRequest putMappingRequest = new PutMappingRequest("dmps");
PutMappingRequest putMappingRequest = new PutMappingRequest(this.environment.getProperty("elasticsearch.index"));
putMappingRequest.source(builder);
this.getClient().indices().putMapping(putMappingRequest, RequestOptions.DEFAULT);
}
@ -62,7 +66,7 @@ public class DmpRepository extends ElasticRepository<Dmp, DmpCriteria> {
public Dmp createOrUpdate(Dmp entity) throws IOException {
if (this.getClient() != null) {
XContentBuilder builder = XContentFactory.jsonBuilder();
IndexRequest request = new IndexRequest("dmps").id(entity.getId().toString()).source(entity.toElasticEntity(builder));
IndexRequest request = new IndexRequest(this.environment.getProperty("elasticsearch.index")).id(entity.getId().toString()).source(entity.toElasticEntity(builder));
IndexResponse response = this.getClient().index(request, RequestOptions.DEFAULT);
return entity;
}
@ -72,7 +76,7 @@ public class DmpRepository extends ElasticRepository<Dmp, DmpCriteria> {
@Override
public Dmp findDocument(String id) throws IOException {
if (this.getClient() != null) {
GetRequest request = new GetRequest("dmps", id);
GetRequest request = new GetRequest(this.environment.getProperty("elasticsearch.index"), id);
GetResponse response = this.getClient().get(request, RequestOptions.DEFAULT);
return new Dmp().fromElasticEntity(response.getSourceAsMap());
}
@ -82,10 +86,10 @@ public class DmpRepository extends ElasticRepository<Dmp, DmpCriteria> {
@Override
public List<Dmp> query(DmpCriteria criteria) throws IOException {
if (this.getClient() != null) {
SearchRequest searchRequest = new SearchRequest("dmps");
SearchRequest searchRequest = new SearchRequest(this.environment.getProperty("elasticsearch.index"));
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
CountRequest countRequest = new CountRequest("dmps");
CountRequest countRequest = new CountRequest(this.environment.getProperty("elasticsearch.index"));
countRequest.query(QueryBuilders.boolQuery().mustNot(QueryBuilders.termsQuery(Dmp.MapKey.STATUS.getName(), Collections.singletonList(Dmp.DMPStatus.DELETED.getValue()))));
CountResponse countResponse = getClient().count(countRequest, RequestOptions.DEFAULT);
Long count = countResponse.getCount();
@ -152,7 +156,7 @@ public class DmpRepository extends ElasticRepository<Dmp, DmpCriteria> {
public boolean createIndex() {
try {
if (!this.exists()) {
CreateIndexRequest createIndexRequest = new CreateIndexRequest("dmps");
CreateIndexRequest createIndexRequest = new CreateIndexRequest(this.environment.getProperty("elasticsearch.index"));
this.getClient().indices().create(createIndexRequest, RequestOptions.DEFAULT);
this.generateMapping();
}
@ -166,7 +170,7 @@ public class DmpRepository extends ElasticRepository<Dmp, DmpCriteria> {
@Override
public boolean exists() throws IOException {
if (this.getClient() != null) {
GetIndexRequest request = new GetIndexRequest("dmps");
GetIndexRequest request = new GetIndexRequest(this.environment.getProperty("elasticsearch.index"));
return this.getClient().indices().exists(request, RequestOptions.DEFAULT);
}
return false;
@ -175,10 +179,10 @@ public class DmpRepository extends ElasticRepository<Dmp, DmpCriteria> {
@Override
public void clear() throws IOException {
if (exists()) {
DeleteByQueryRequest delete = new DeleteByQueryRequest("dmps");
DeleteByQueryRequest delete = new DeleteByQueryRequest(this.environment.getProperty("elasticsearch.index"));
delete.setQuery(QueryBuilders.matchAllQuery());
this.getClient().deleteByQuery(delete, RequestOptions.DEFAULT);
DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest("dmps");
DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest(this.environment.getProperty("elasticsearch.index"));
this.getClient().indices().delete(deleteIndexRequest, RequestOptions.DEFAULT);
}
}

View File

@ -13,6 +13,7 @@ elasticsearch.host = localhost
elasticsearch.port = 9200
elasticsearch.username=elastic
elasticsearch.password=
elasticsearch.index=dmps
####################ELK OVERRIDES CONFIGURATIONS##########
http-logger.server-address = http://localhost:31311

View File

@ -10,6 +10,7 @@ elasticsearch.host = tags-elastic-search
elasticsearch.port = 9200
elasticsearch.username=elastic
elasticsearch.password=
elasticsearch.index=dmps
####################PDF OVERRIDES CONFIGURATIONS##########
pdf.converter.url=http://docsbox-web/

View File

@ -10,6 +10,7 @@ elasticsearch.host = tags-elastic-search
elasticsearch.port = 9200
elasticsearch.username=elastic
elasticsearch.password=
elasticsearch.index=dmps
####################PDF OVERRIDES CONFIGURATIONS##########
pdf.converter.url=http://docsbox-web/