RED-2175, RED-2472: Backported search fixes

This commit is contained in:
Dominique Eifländer 2021-10-18 14:28:02 +02:00
parent c503d1bb93
commit 94e4d1e630

View File

@ -92,9 +92,9 @@ public class SearchService {
sectionsQueries.should(textPhraseQuery);
}
for (String should : query.getShoulds()) {
QueryBuilder textTermQuery = QueryBuilders.termQuery("sections.text", should.toLowerCase(Locale.ROOT))
QueryBuilder textTermQuery = QueryBuilders.matchPhraseQuery("sections.text", should.toLowerCase(Locale.ROOT))
.queryName(should);
QueryBuilder filenameTermQuery = QueryBuilders.termQuery("filename", should.toLowerCase(Locale.ROOT))
QueryBuilder filenameTermQuery = QueryBuilders.matchPhraseQuery("filename", should.toLowerCase(Locale.ROOT))
.queryName("filename." + should);
entireQuery.should(textTermQuery);
entireQuery.should(filenameTermQuery);
@ -109,6 +109,9 @@ public class SearchService {
entireQuery.should(nestedQuery);
}
BoolQueryBuilder filterQuery = QueryBuilders.boolQuery();
if (dossierTemplateIds != null && !dossierTemplateIds.isEmpty()) {
var dossierTemplateIdQueryBuilder = QueryBuilders.boolQuery();
@ -117,7 +120,7 @@ public class SearchService {
dossierTemplateIdQueryBuilder = dossierTemplateIdQueryBuilder.should(QueryBuilders.matchQuery("dossierTemplateId", dossierTemplateId));
}
entireQuery.filter(dossierTemplateIdQueryBuilder);
filterQuery.must(dossierTemplateIdQueryBuilder);
}
if (dossierIds != null && !dossierIds.isEmpty()) {
@ -128,15 +131,15 @@ public class SearchService {
dossierIdQueryBuilder = dossierIdQueryBuilder.should(QueryBuilders.matchQuery("dossierId", dossierId));
}
entireQuery.filter(dossierIdQueryBuilder);
filterQuery.must(dossierIdQueryBuilder);
}
if (fileId != null) {
entireQuery.filter(QueryBuilders.matchQuery("fileId", fileId));
filterQuery.must(QueryBuilders.matchQuery("fileId", fileId));
}
return entireQuery;
return QueryBuilders.boolQuery().filter(filterQuery).must(entireQuery);
}