Skip to content
Snippets Groups Projects
Commit ef44ee34 authored by OZGCloud's avatar OZGCloud
Browse files

Merge pull request 'OZG-3037_elasticsearch_suche' (#72) from...

Merge pull request 'OZG-3037_elasticsearch_suche' (#72) from OZG-3037_elasticsearch_suche into master

Reviewed-on: https://git.ozg-sh.de/mgm/pluto/pulls/72


Reviewed-by: default avatarOZGCloud <ozgcloud@mgm-tp.com>
parents 5ea8c6f6 7a705266
Branches
Tags
No related merge requests found
package de.itvsh.kop.notification.user;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
import de.itvsh.kop.user.grpc.recipient.RecipientServiceGrpc.RecipientServiceBlockingStub;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*;
class UserRemoteServiceTest {
@InjectMocks
......@@ -24,7 +24,7 @@ class UserRemoteServiceTest {
class TestRequestRecipients {
@Test
void shouldConvertCorrectly(){
void shouldConvertCorrectly() {
when(recipientService.findRecipientByOrganisationsEinheitId(any())).thenReturn(GrpcFindRecipientRequestTestFactory.create());
when(mapper.fromGrpc(any())).thenReturn(RecipientTestFactory.create());
......
......@@ -6,6 +6,7 @@ import static org.elasticsearch.index.query.QueryBuilders.*;
import java.util.Arrays;
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -24,6 +25,8 @@ import de.itvsh.ozg.pluto.vorgang.VorgangHeader;
@Repository
class SearchVorgangCustomRepositoryImpl implements SearchVorgangCustomRepostitory {
private static final String JOIN_AND = " AND ";
private static final String WILDCARD_PATTERN = "(*%s*)";
private static final String KEYWORD = ".keyword";
private static final float HALF_BOOST = 0.5f;
private static final float DOUBLE_BOOST = 2f;
......@@ -57,8 +60,10 @@ class SearchVorgangCustomRepositoryImpl implements SearchVorgangCustomRepostitor
setFilter(request, searchQueryBuilder);
Arrays.stream(request.getQuery().strip().split(" ")).forEach(query -> searchQueryBuilder
.withQuery(queryStringQuery("*" + query + "*").fields(SearchVorgangCustomRepositoryImpl.FIELD_MAP)));
var queryString = Arrays.stream(request.getQuery().strip().split(StringUtils.SPACE)).map(
WILDCARD_PATTERN::formatted).collect(Collectors.joining(JOIN_AND));
searchQueryBuilder.withQuery(queryStringQuery(queryString).fields(SearchVorgangCustomRepositoryImpl.FIELD_MAP));
return searchQueryBuilder.withPageable(pageable).build();
}
......
......@@ -29,7 +29,7 @@ spring:
properties:
'[mail.smtp.starttls.enable]': true
elasticsearch:
#uris: http://localhost:9200
uris: http://localhost:9200
username: elastic
password: password
......
......@@ -123,7 +123,7 @@ public class SearchServiceITCase {
void shouldFindByAntragstellerNameAndAktenzeichen() {
var res = searchService
.find(FindVorgangRequestTestFactory.createBuilder()
.searchBy(IndexedVorgangTestFactory.ANTRAGSTELLER_NAME + " test")
.searchBy(IndexedVorgangTestFactory.ANTRAGSTELLER_NAME + " tes")
.filterBy(FilterCriteriaTestFactory.createBuilder().clearStatus().assignedTo(null).build())
.build());
......
......@@ -81,12 +81,11 @@ class SearchVorgangCustomRepositoryImplTest {
}
@Test
void shouldHaveQuery() {
void shouldHaveFieldsWithWights() {
var request = SearchRequestTestFactory.create();
var query = searchRepostitory.createQuery(request, PageRequest.of(request.getOffSet(), request.getLimit()));
assertThat(query.getQuery()).isNotNull();
assertThat(query.getQuery()).asString().contains("\"query\" : \"*vors*\"");
assertThat(query.getQuery()).asString().contains("aktenzeichen^2.0");
assertThat(query.getQuery()).asString().contains("antragstellerName^1.0");
assertThat(query.getQuery()).asString().contains("antragstellerVorname^1.0");
......@@ -94,6 +93,22 @@ class SearchVorgangCustomRepositoryImplTest {
assertThat(query.getQuery()).asString().contains("vorgangNummer^2.0");
}
@Test
void shouldHaveSimpleQuery() {
var request = SearchRequestTestFactory.create();
var query = searchRepostitory.createQuery(request, PageRequest.of(request.getOffSet(), request.getLimit()));
assertThat(query.getQuery()).asString().contains("\"query\" : \"(*vors*)\"");
}
@Test
void shouldHaveQuery() {
var request = SearchRequestTestFactory.createBuilder().query("vors test").build();
var query = searchRepostitory.createQuery(request, PageRequest.of(request.getOffSet(), request.getLimit()));
assertThat(query.getQuery()).asString().contains("\"query\" : \"(*vors*) AND (*test*)\"");
}
@Nested
class forRolePoststelle {
@Test
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment