Pull request #17: RED-2472: Fixed wrong usage of filter query that leads to false positives
Merge in RED/search-service from RED-2472 to master * commit 'fab1932e7b95f4f2341bb3df5110b555cf6c7305': RED-2472: Fixed wrong usage of filter query that leads to false positives
This commit is contained in:
commit
bb3606b03b
@ -103,6 +103,9 @@ public class SearchService {
|
||||
entireQuery.should(nestedQuery);
|
||||
}
|
||||
|
||||
|
||||
BoolQueryBuilder filterQuery = QueryBuilders.boolQuery();
|
||||
|
||||
if (dossierTemplateIds != null && !dossierTemplateIds.isEmpty()) {
|
||||
|
||||
var dossierTemplateIdQueryBuilder = QueryBuilders.boolQuery();
|
||||
@ -111,7 +114,7 @@ public class SearchService {
|
||||
dossierTemplateIdQueryBuilder = dossierTemplateIdQueryBuilder.should(QueryBuilders.matchQuery("dossierTemplateId", dossierTemplateId));
|
||||
}
|
||||
|
||||
entireQuery.filter(dossierTemplateIdQueryBuilder);
|
||||
filterQuery.must(dossierTemplateIdQueryBuilder);
|
||||
}
|
||||
|
||||
if (dossierIds != null && !dossierIds.isEmpty()) {
|
||||
@ -122,15 +125,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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -59,9 +59,9 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
|
||||
documentIndexService.indexDocument("template2", "dossierId2", "fileId2", "S-Metolachlor_RAR_01_Volume_1_2018-09-06.pdf", text2);
|
||||
|
||||
// Act & Assert 1
|
||||
SearchResult result = searchService.search("hans klaus single", null, null, null, 1, 10, true);
|
||||
SearchResult result = searchService.search("S-Metolachlor", null, Arrays.asList("dossierId1", "dossierId2"), null, 1, 10, false);
|
||||
|
||||
assertThat(result.getMatchedDocuments().size()).isEqualTo(2);
|
||||
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
|
||||
|
||||
// Act
|
||||
documentDeleteService.deleteDocument("fileId1");
|
||||
@ -100,8 +100,7 @@ public class IndexCreatorTest extends AbstractElasticsearchIntegrationTest {
|
||||
SearchResult result = searchService.search(searchString, null, Arrays.asList("dossierId1"), null, 1, 10, true);
|
||||
|
||||
// Assert
|
||||
assertThat(result.getMatchedDocuments().size()).isEqualTo(1);
|
||||
assertThat(result.getMatchedDocuments().get(0).getMatchedTerms().size()).isEqualTo(0);
|
||||
assertThat(result.getMatchedDocuments().size()).isEqualTo(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user