Skip to content

Commit

Permalink
fix(search): Move filters to query instead of post query(#3208)
Browse files Browse the repository at this point in the history
  • Loading branch information
Dexter Lee authored Sep 8, 2021
1 parent 3b88621 commit cbc449e
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ public SearchRequest getSearchRequest(@Nonnull String input, @Nullable Filter fi
BoolQueryBuilder filterQuery = ESUtils.buildFilterQuery(filter);
// Filter out entities that are marked "removed"
filterQuery.mustNot(QueryBuilders.matchQuery("removed", true));
searchSourceBuilder.postFilter(filterQuery);
searchSourceBuilder.query(QueryBuilders.boolQuery().must(getQuery(input)).must(filterQuery));
getAggregations(filter).forEach(searchSourceBuilder::aggregation);
searchSourceBuilder.highlighter(getHighlights());
ESUtils.buildSortOrder(searchSourceBuilder, sortCriterion);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,34 @@ public void testElasticSearchService() throws InterruptedException {
browseResult = _elasticSearchService.browse(ENTITY_NAME, "", null, 0, 10);
assertEquals(browseResult.getMetadata().getTotalNumEntities().longValue(), 1);
assertEquals(browseResult.getGroups().get(0).getName(), "a");
browseResult = _elasticSearchService.browse(ENTITY_NAME, "/a", null, 0, 10);
assertEquals(browseResult.getMetadata().getTotalNumEntities().longValue(), 1);
assertEquals(browseResult.getGroups().get(0).getName(), "b");
assertEquals(_elasticSearchService.docCount(ENTITY_NAME), 1);

Urn urn2 = new TestEntityUrn("test", "testUrn2", "VALUE_2");
ObjectNode document2 = JsonNodeFactory.instance.objectNode();
document2.set("urn", JsonNodeFactory.instance.textNode(urn2.toString()));
document2.set("keyPart1", JsonNodeFactory.instance.textNode("random"));
document2.set("textFieldOverride", JsonNodeFactory.instance.textNode("textFieldOverride2"));
document2.set("browsePaths", JsonNodeFactory.instance.textNode("/b/c"));
_elasticSearchService.upsertDocument(ENTITY_NAME, document2.toString(), urn2.toString());
TimeUnit.SECONDS.sleep(5);

searchResult = _elasticSearchService.search(ENTITY_NAME, "test", null, null, 0, 10);
assertEquals(searchResult.getNumEntities().intValue(), 1);
assertEquals(searchResult.getEntities().get(0), urn);
browseResult = _elasticSearchService.browse(ENTITY_NAME, "", null, 0, 10);
assertEquals(browseResult.getMetadata().getTotalNumEntities().longValue(), 2);
assertEquals(browseResult.getGroups().get(0).getName(), "a");
assertEquals(browseResult.getGroups().get(1).getName(), "b");
browseResult = _elasticSearchService.browse(ENTITY_NAME, "/a", null, 0, 10);
assertEquals(browseResult.getMetadata().getTotalNumEntities().longValue(), 1);
assertEquals(browseResult.getGroups().get(0).getName(), "b");
assertEquals(_elasticSearchService.docCount(ENTITY_NAME), 2);

_elasticSearchService.deleteDocument(ENTITY_NAME, urn.toString());
_elasticSearchService.deleteDocument(ENTITY_NAME, urn2.toString());
TimeUnit.SECONDS.sleep(5);
searchResult = _elasticSearchService.search(ENTITY_NAME, "test", null, null, 0, 10);
assertEquals(searchResult.getNumEntities().intValue(), 0);
Expand Down

0 comments on commit cbc449e

Please sign in to comment.