Skip to content

Commit

Permalink
Search Queries in parallel assertHitcount - part 2 (elastic#117488)
Browse files Browse the repository at this point in the history
Tests optimization by grouping assetHitCount operations
  • Loading branch information
drempapis authored Jan 2, 2025
1 parent 1d5706e commit 2d16cc3
Show file tree
Hide file tree
Showing 8 changed files with 197 additions and 134 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -779,17 +779,13 @@ public void testTaskStoringSuccessfulResult() throws Exception {
assertNoFailures(indicesAdmin().prepareRefresh(TaskResultsService.TASK_INDEX).get());

assertHitCount(
1L,
prepareSearch(TaskResultsService.TASK_INDEX).setSource(
SearchSourceBuilder.searchSource().query(QueryBuilders.termQuery("task.action", taskInfo.action()))
),
1L
);

assertHitCount(
prepareSearch(TaskResultsService.TASK_INDEX).setSource(
SearchSourceBuilder.searchSource().query(QueryBuilders.termQuery("task.node", taskInfo.taskId().getNodeId()))
),
1L
)
);

GetTaskResponse getResponse = expectFinishedTask(taskId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,11 @@ public void testCreateShrinkIndexToN() {
.get();
}
flushAndRefresh();
assertHitCount(prepareSearch("first_shrink").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar")), 20);
assertHitCount(prepareSearch("source").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar")), 20);
assertHitCount(
20,
prepareSearch("first_shrink").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar")),
prepareSearch("source").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar"))
);

// relocate all shards to one node such that we can merge it.
updateIndexSettings(
Expand Down Expand Up @@ -145,9 +148,12 @@ public void testCreateShrinkIndexToN() {
.get();
}
flushAndRefresh();
assertHitCount(prepareSearch("second_shrink").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar")), 20);
assertHitCount(prepareSearch("first_shrink").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar")), 20);
assertHitCount(prepareSearch("source").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar")), 20);
assertHitCount(
20,
prepareSearch("second_shrink").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar")),
prepareSearch("first_shrink").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar")),
prepareSearch("source").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar"))
);

assertNoResizeSourceIndexSettings("first_shrink");
assertNoResizeSourceIndexSettings("second_shrink");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -236,9 +236,12 @@ private void splitToN(int sourceShards, int firstSplitShards, int secondSplitSha
GetResponse getResponse = client().prepareGet("second_split", Integer.toString(i)).setRouting(routingValue[i]).get();
assertTrue(getResponse.isExists());
}
assertHitCount(prepareSearch("second_split").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar")), numDocs);
assertHitCount(prepareSearch("first_split").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar")), numDocs);
assertHitCount(prepareSearch("source").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar")), numDocs);
assertHitCount(
numDocs,
prepareSearch("second_split").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar")),
prepareSearch("first_split").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar")),
prepareSearch("source").setSize(100).setQuery(new TermsQueryBuilder("foo", "bar"))
);
if (useNested) {
assertNested("source", numDocs);
assertNested("first_split", numDocs);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -683,9 +683,12 @@ public void testDynamicRuntimeNoConflicts() {
BulkResponse bulkItemResponses = client().bulk(bulkRequest).actionGet();
assertFalse(bulkItemResponses.buildFailureMessage(), bulkItemResponses.hasFailures());

assertHitCount(prepareSearch("test").setQuery(new MatchQueryBuilder("one", "one")), 1);
assertHitCount(prepareSearch("test").setQuery(new MatchQueryBuilder("one.two", 3.5)), 1);
assertHitCount(prepareSearch("test").setQuery(new MatchQueryBuilder("one.two.three", "1")), 1);
assertHitCount(
1,
prepareSearch("test").setQuery(new MatchQueryBuilder("one", "one")),
prepareSearch("test").setQuery(new MatchQueryBuilder("one.two", 3.5)),
prepareSearch("test").setQuery(new MatchQueryBuilder("one.two.three", "1"))
);
}

public void testDynamicRuntimeObjectFields() {
Expand Down Expand Up @@ -722,10 +725,13 @@ public void testDynamicRuntimeObjectFields() {
BulkResponse bulkItemResponses = client().bulk(bulkRequest).actionGet();
assertFalse(bulkItemResponses.buildFailureMessage(), bulkItemResponses.hasFailures());

assertHitCount(prepareSearch("test").setQuery(new MatchQueryBuilder("obj.one", 1)), 1);
assertHitCount(prepareSearch("test").setQuery(new MatchQueryBuilder("anything", "anything")), 1);
assertHitCount(prepareSearch("test").setQuery(new MatchQueryBuilder("obj.runtime.one", "one")), 1);
assertHitCount(prepareSearch("test").setQuery(new MatchQueryBuilder("obj.runtime.one.two", "1")), 1);
assertHitCount(
1,
prepareSearch("test").setQuery(new MatchQueryBuilder("obj.one", 1)),
prepareSearch("test").setQuery(new MatchQueryBuilder("anything", "anything")),
prepareSearch("test").setQuery(new MatchQueryBuilder("obj.runtime.one", "one")),
prepareSearch("test").setQuery(new MatchQueryBuilder("obj.runtime.one.two", "1"))
);

Exception exception = expectThrows(DocumentParsingException.class, prepareIndex("test").setSource("obj.runtime", "value"));
assertThat(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,11 +91,11 @@ public void testGeoPointMultiField() throws Exception {
GeoPoint point = new GeoPoint(51, 19);
prepareIndex("my-index").setId("1").setSource("a", point.toString()).setRefreshPolicy(IMMEDIATE).get();
assertHitCount(
1L,
prepareSearch("my-index").setSize(0)
.setQuery(constantScoreQuery(geoDistanceQuery("a").point(51, 19).distance(50, DistanceUnit.KILOMETERS))),
1L
prepareSearch("my-index").setSize(0).setQuery(matchQuery("a.b", point.geohash()))
);
assertHitCount(prepareSearch("my-index").setSize(0).setQuery(matchQuery("a.b", point.geohash())), 1L);
}

@SuppressWarnings("unchecked")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,70 +123,97 @@ public void testAliasSearchRouting() throws Exception {

logger.info("--> search with wrong routing, should not find");
for (int i = 0; i < 5; i++) {
assertHitCount(prepareSearch().setRouting("1").setQuery(QueryBuilders.matchAllQuery()), 0);
assertHitCount(prepareSearch().setSize(0).setRouting("1").setQuery(QueryBuilders.matchAllQuery()), 0);
assertHitCount(prepareSearch("alias1").setQuery(QueryBuilders.matchAllQuery()), 0);
assertHitCount(prepareSearch("alias1").setSize(0).setQuery(QueryBuilders.matchAllQuery()), 0);
assertHitCount(
0,
prepareSearch().setRouting("1").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch().setSize(0).setRouting("1").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias1").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias1").setSize(0).setQuery(QueryBuilders.matchAllQuery())
);
}

logger.info("--> search with correct routing, should find");
for (int i = 0; i < 5; i++) {

assertHitCount(prepareSearch().setRouting("0").setQuery(QueryBuilders.matchAllQuery()), 1);
assertHitCount(prepareSearch().setSize(0).setRouting("0").setQuery(QueryBuilders.matchAllQuery()), 1);
assertHitCount(prepareSearch("alias0").setQuery(QueryBuilders.matchAllQuery()), 1);
assertHitCount(prepareSearch("alias0").setSize(0).setQuery(QueryBuilders.matchAllQuery()), 1);
assertHitCount(
1,
prepareSearch().setRouting("0").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch().setSize(0).setRouting("0").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias0").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias0").setSize(0).setQuery(QueryBuilders.matchAllQuery())
);
}

logger.info("--> indexing with id [2], and routing [1] using alias");
prepareIndex("alias1").setId("2").setSource("field", "value1").setRefreshPolicy(RefreshPolicy.IMMEDIATE).get();

logger.info("--> search with no routing, should fine two");
for (int i = 0; i < 5; i++) {
assertHitCount(prepareSearch().setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(prepareSearch().setSize(0).setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(
2,
prepareSearch().setQuery(QueryBuilders.matchAllQuery()),
prepareSearch().setSize(0).setQuery(QueryBuilders.matchAllQuery())
);
}

logger.info("--> search with 0 routing, should find one");
for (int i = 0; i < 5; i++) {
assertHitCount(prepareSearch().setRouting("0").setQuery(QueryBuilders.matchAllQuery()), 1);
assertHitCount(prepareSearch().setSize(0).setRouting("0").setQuery(QueryBuilders.matchAllQuery()), 1);
assertHitCount(prepareSearch("alias0").setQuery(QueryBuilders.matchAllQuery()), 1);
assertHitCount(prepareSearch("alias0").setSize(0).setQuery(QueryBuilders.matchAllQuery()), 1);
assertHitCount(
1,
prepareSearch().setRouting("0").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch().setSize(0).setRouting("0").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias0").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias0").setSize(0).setQuery(QueryBuilders.matchAllQuery())
);
}

logger.info("--> search with 1 routing, should find one");
for (int i = 0; i < 5; i++) {
assertHitCount(prepareSearch().setRouting("1").setQuery(QueryBuilders.matchAllQuery()), 1);
assertHitCount(prepareSearch().setSize(0).setRouting("1").setQuery(QueryBuilders.matchAllQuery()), 1);
assertHitCount(prepareSearch("alias1").setQuery(QueryBuilders.matchAllQuery()), 1);
assertHitCount(prepareSearch("alias1").setSize(0).setQuery(QueryBuilders.matchAllQuery()), 1);
assertHitCount(
1,
prepareSearch().setRouting("1").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch().setSize(0).setRouting("1").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias1").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias1").setSize(0).setQuery(QueryBuilders.matchAllQuery())
);
}

logger.info("--> search with 0,1 indexRoutings , should find two");
for (int i = 0; i < 5; i++) {
assertHitCount(prepareSearch().setRouting("0", "1").setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(prepareSearch().setSize(0).setRouting("0", "1").setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(prepareSearch("alias01").setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(prepareSearch("alias01").setSize(0).setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(
2,
prepareSearch().setRouting("0", "1").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch().setSize(0).setRouting("0", "1").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias01").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias01").setSize(0).setQuery(QueryBuilders.matchAllQuery())
);
}

logger.info("--> search with two routing aliases , should find two");
for (int i = 0; i < 5; i++) {
assertHitCount(prepareSearch("alias0", "alias1").setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(prepareSearch("alias0", "alias1").setSize(0).setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(
2,
prepareSearch("alias0", "alias1").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias0", "alias1").setSize(0).setQuery(QueryBuilders.matchAllQuery())
);
}

logger.info("--> search with alias0, alias1 and alias01, should find two");
for (int i = 0; i < 5; i++) {
assertHitCount(prepareSearch("alias0", "alias1", "alias01").setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(prepareSearch("alias0", "alias1", "alias01").setSize(0).setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(
2,
prepareSearch("alias0", "alias1", "alias01").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias0", "alias1", "alias01").setSize(0).setQuery(QueryBuilders.matchAllQuery())
);
}

logger.info("--> search with test, alias0 and alias1, should find two");
for (int i = 0; i < 5; i++) {
assertHitCount(prepareSearch("test", "alias0", "alias1").setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(prepareSearch("test", "alias0", "alias1").setSize(0).setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(
2,
prepareSearch("test", "alias0", "alias1").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("test", "alias0", "alias1").setSize(0).setQuery(QueryBuilders.matchAllQuery())
);
}

}
Expand Down Expand Up @@ -236,20 +263,29 @@ public void testAliasSearchRoutingWithTwoIndices() throws Exception {

logger.info("--> search with alias-a1,alias-b0, should not find");
for (int i = 0; i < 5; i++) {
assertHitCount(prepareSearch("alias-a1", "alias-b0").setQuery(QueryBuilders.matchAllQuery()), 0);
assertHitCount(prepareSearch("alias-a1", "alias-b0").setSize(0).setQuery(QueryBuilders.matchAllQuery()), 0);
assertHitCount(
0,
prepareSearch("alias-a1", "alias-b0").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias-a1", "alias-b0").setSize(0).setQuery(QueryBuilders.matchAllQuery())
);
}

logger.info("--> search with alias-ab, should find two");
for (int i = 0; i < 5; i++) {
assertHitCount(prepareSearch("alias-ab").setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(prepareSearch("alias-ab").setSize(0).setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(
2,
prepareSearch("alias-ab").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias-ab").setSize(0).setQuery(QueryBuilders.matchAllQuery())
);
}

logger.info("--> search with alias-a0,alias-b1 should find two");
for (int i = 0; i < 5; i++) {
assertHitCount(prepareSearch("alias-a0", "alias-b1").setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(prepareSearch("alias-a0", "alias-b1").setSize(0).setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(
2,
prepareSearch("alias-a0", "alias-b1").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias-a0", "alias-b1").setSize(0).setQuery(QueryBuilders.matchAllQuery())
);
}
}

Expand Down Expand Up @@ -317,17 +353,23 @@ public void testIndexingAliasesOverTime() throws Exception {
logger.info("--> verifying get and search with routing, should find");
for (int i = 0; i < 5; i++) {
assertThat(client().prepareGet("test", "0").setRouting("3").get().isExists(), equalTo(true));
assertHitCount(prepareSearch("alias").setQuery(QueryBuilders.matchAllQuery()), 1);
assertHitCount(prepareSearch("alias").setSize(0).setQuery(QueryBuilders.matchAllQuery()), 1);
assertHitCount(
1,
prepareSearch("alias").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias").setSize(0).setQuery(QueryBuilders.matchAllQuery())
);
}

logger.info("--> creating alias with routing [4]");
assertAcked(indicesAdmin().prepareAliases().addAliasAction(AliasActions.add().index("test").alias("alias").routing("4")));

logger.info("--> verifying search with wrong routing should not find");
for (int i = 0; i < 5; i++) {
assertHitCount(prepareSearch("alias").setQuery(QueryBuilders.matchAllQuery()), 0);
assertHitCount(prepareSearch("alias").setSize(0).setQuery(QueryBuilders.matchAllQuery()), 0);
assertHitCount(
0,
prepareSearch("alias").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias").setSize(0).setQuery(QueryBuilders.matchAllQuery())
);
}

logger.info("--> creating alias with search routing [3,4] and index routing 4");
Expand All @@ -344,8 +386,11 @@ public void testIndexingAliasesOverTime() throws Exception {
for (int i = 0; i < 5; i++) {
assertThat(client().prepareGet("test", "0").setRouting("3").get().isExists(), equalTo(true));
assertThat(client().prepareGet("test", "1").setRouting("4").get().isExists(), equalTo(true));
assertHitCount(prepareSearch("alias").setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(prepareSearch("alias").setSize(0).setQuery(QueryBuilders.matchAllQuery()), 2);
assertHitCount(
2,
prepareSearch("alias").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch("alias").setSize(0).setQuery(QueryBuilders.matchAllQuery())
);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,14 +141,20 @@ public void testSimpleSearchRouting() {

logger.info("--> search with wrong routing, should not find");
for (int i = 0; i < 5; i++) {
assertHitCount(prepareSearch().setRouting("1").setQuery(QueryBuilders.matchAllQuery()), 0);
assertHitCount(prepareSearch().setSize(0).setRouting("1").setQuery(QueryBuilders.matchAllQuery()), 0);
assertHitCount(
0,
prepareSearch().setRouting("1").setQuery(QueryBuilders.matchAllQuery()),
prepareSearch().setSize(0).setRouting("1").setQuery(QueryBuilders.matchAllQuery())
);
}

logger.info("--> search with correct routing, should find");
for (int i = 0; i < 5; i++) {
assertHitCount(prepareSearch().setRouting(routingValue).setQuery(QueryBuilders.matchAllQuery()), 1);
assertHitCount(prepareSearch().setSize(0).setRouting(routingValue).setQuery(QueryBuilders.matchAllQuery()), 1);
assertHitCount(
1,
prepareSearch().setRouting(routingValue).setQuery(QueryBuilders.matchAllQuery()),
prepareSearch().setSize(0).setRouting(routingValue).setQuery(QueryBuilders.matchAllQuery())
);
}

String secondRoutingValue = "1";
Expand Down
Loading

0 comments on commit 2d16cc3

Please sign in to comment.