Skip to content

Commit

Permalink
fix spotlessApply
Browse files Browse the repository at this point in the history
Signed-off-by: kkewwei <kkewwei@163.com>
  • Loading branch information
kkewwei committed Apr 23, 2024
1 parent ab3bead commit f264a0b
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 54 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -123,14 +123,7 @@ protected AggregatorFactory doBuild(QueryShardContext queryShardContext, Aggrega
}
try {
queryShardContext.nestedScope().nextLevel(childObjectMapper);
return new NestedAggregatorFactory(
name,
childObjectMapper,
queryShardContext,
parent,
subFactoriesBuilder,
metadata
);
return new NestedAggregatorFactory(name, childObjectMapper, queryShardContext, parent, subFactoriesBuilder, metadata);
} finally {
queryShardContext.nestedScope().previousLevel();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,7 @@ public void collect(int parentDoc, long bucket) throws IOException {
}
}

static Tuple<Integer, Integer> getChildAndRootParent(BitSet parentDocs, DocIdSetIterator childDocs, int parentDoc
) throws IOException {
static Tuple<Integer, Integer> getChildAndRootParent(BitSet parentDocs, DocIdSetIterator childDocs, int parentDoc) throws IOException {
int currentRootDoc;
int prevParentDoc = parentDocs.prevSetBit(parentDoc);
if (prevParentDoc == -1) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@
import org.apache.lucene.util.BitSet;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.FixedBitSet;
import org.mockito.Mockito;
import org.opensearch.common.CheckedConsumer;
import org.opensearch.common.collect.Tuple;
import org.opensearch.common.lucene.search.Queries;
Expand Down Expand Up @@ -119,17 +118,19 @@
import java.util.stream.DoubleStream;
import java.util.stream.LongStream;

import org.mockito.Mockito;

import static java.util.stream.Collectors.toList;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.opensearch.common.lucene.search.Queries.newNonNestedFilter;
import static org.opensearch.search.aggregations.AggregationBuilders.max;
import static org.opensearch.search.aggregations.AggregationBuilders.nested;
import static org.hamcrest.Matchers.equalTo;
import static org.opensearch.search.aggregations.bucket.nested.NestedAggregator.getChildAndRootParent;
import static org.opensearch.test.InternalAggregationTestCase.DEFAULT_MAX_BUCKETS;
import static org.hamcrest.Matchers.equalTo;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

public class NestedAggregatorTests extends AggregatorTestCase {

Expand Down Expand Up @@ -230,8 +231,10 @@ public void testSingleNestingMax() throws IOException {
NestedAggregationBuilder nestedBuilder = new NestedAggregationBuilder(NESTED_AGG, NESTED_OBJECT);
MaxAggregationBuilder maxAgg = new MaxAggregationBuilder(MAX_AGG_NAME).field(NESTED_OBJECT + "." + VALUE_FIELD_NAME);
nestedBuilder.subAggregation(maxAgg);
MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType(NESTED_OBJECT + "." + VALUE_FIELD_NAME,
NumberFieldMapper.NumberType.LONG);
MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType(
NESTED_OBJECT + "." + VALUE_FIELD_NAME,
NumberFieldMapper.NumberType.LONG
);

InternalNested nested = searchAndReduce(
createIndexSettings(),
Expand Down Expand Up @@ -284,11 +287,13 @@ public void testDoubleNestingMax() throws IOException {
}
try (IndexReader indexReader = wrapInMockESDirectoryReader(DirectoryReader.open(directory))) {
NestedAggregationBuilder nestedBuilder = new NestedAggregationBuilder(NESTED_AGG, NESTED_OBJECT);
MaxAggregationBuilder maxAgg = new MaxAggregationBuilder(MAX_AGG_NAME).field(NESTED_OBJECT+ "." + VALUE_FIELD_NAME);
MaxAggregationBuilder maxAgg = new MaxAggregationBuilder(MAX_AGG_NAME).field(NESTED_OBJECT + "." + VALUE_FIELD_NAME);
nestedBuilder.subAggregation(maxAgg);

MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType(NESTED_OBJECT+ "." + VALUE_FIELD_NAME,
NumberFieldMapper.NumberType.LONG);
MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType(
NESTED_OBJECT + "." + VALUE_FIELD_NAME,
NumberFieldMapper.NumberType.LONG
);

InternalNested nested = searchAndReduce(
createIndexSettings(),
Expand Down Expand Up @@ -345,7 +350,10 @@ public void testOrphanedDocs() throws IOException {
NestedAggregationBuilder nestedBuilder = new NestedAggregationBuilder(NESTED_AGG, NESTED_OBJECT);
SumAggregationBuilder sumAgg = new SumAggregationBuilder(SUM_AGG_NAME).field(NESTED_OBJECT + "." + VALUE_FIELD_NAME);
nestedBuilder.subAggregation(sumAgg);
MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType(NESTED_OBJECT + "." + VALUE_FIELD_NAME, NumberFieldMapper.NumberType.LONG);
MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType(
NESTED_OBJECT + "." + VALUE_FIELD_NAME,
NumberFieldMapper.NumberType.LONG
);

InternalNested nested = searchAndReduce(
createIndexSettings(),
Expand Down Expand Up @@ -782,17 +790,24 @@ public void testFieldAlias() throws IOException {
max(MAX_AGG_NAME).field(VALUE_FIELD_NAME + "-alias")
);

InternalNested nested = searchAndReduce(createIndexSettings(),
newSearcher(indexReader, false, true), new MatchAllDocsQuery(), agg,
DEFAULT_MAX_BUCKETS,true, fieldType);
InternalNested nested = searchAndReduce(
createIndexSettings(),
newSearcher(indexReader, false, true),
new MatchAllDocsQuery(),
agg,
DEFAULT_MAX_BUCKETS,
true,
fieldType
);
Nested aliasNested = searchAndReduce(
createIndexSettings(),
newSearcher(indexReader, false, true),
new MatchAllDocsQuery(),
aliasAgg,
DEFAULT_MAX_BUCKETS,
true,
fieldType);
fieldType
);

assertEquals(nested, aliasNested);
assertEquals(expectedNestedDocs, nested.getDocCount());
Expand Down Expand Up @@ -925,32 +940,38 @@ public void testBufferingNestedLeafBucketCollector() throws IOException {
}
try (IndexReader indexReader = wrapInMockESDirectoryReader(DirectoryReader.open(directory))) {
IndexSettings indexSettings = createIndexSettings();
MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType(NESTED_OBJECT + "." +VALUE_FIELD_NAME, NumberFieldMapper.NumberType.LONG);
MappedFieldType fieldType1 = new NumberFieldMapper.NumberFieldType(NESTED_OBJECT2 + "." + VALUE_FIELD_NAME2, NumberFieldMapper.NumberType.LONG);
MappedFieldType fieldType = new NumberFieldMapper.NumberFieldType(
NESTED_OBJECT + "." + VALUE_FIELD_NAME,
NumberFieldMapper.NumberType.LONG
);
MappedFieldType fieldType1 = new NumberFieldMapper.NumberFieldType(
NESTED_OBJECT2 + "." + VALUE_FIELD_NAME2,
NumberFieldMapper.NumberType.LONG
);
QueryShardContext queryShardContext = createQueryShardContext(NESTED_OBJECT2, indexSettings, fieldType1);
// query
expectedNestedDocs = numRootDocs/2;
expectedNestedDocs = numRootDocs / 2;
bucketKeys = new String[expectedNestedDocs];
BytesRef [] values = new BytesRef[numRootDocs/2];
for (int i = 0; i < numRootDocs/2; i++) {
bucketKeys[i] = "" + (i * 2);
BytesRef[] values = new BytesRef[numRootDocs / 2];
for (int i = 0; i < numRootDocs / 2; i++) {
bucketKeys[i] = "" + (i * 2);
values[i] = new BytesRef(bucketKeys[i]);
}
TermsQueryBuilder termsQueryBuilder = new TermsQueryBuilder(NESTED_OBJECT2 + "." + VALUE_FIELD_NAME2, (Object[])values);
TermsQueryBuilder termsQueryBuilder = new TermsQueryBuilder(NESTED_OBJECT2 + "." + VALUE_FIELD_NAME2, (Object[]) values);
NestedQueryBuilder nestedQueryBuilder = new NestedQueryBuilder(NESTED_OBJECT2, termsQueryBuilder, ScoreMode.None);

//out nested aggs
// out nested aggs
NestedAggregationBuilder outNestedBuilder = new NestedAggregationBuilder(OUT_NESTED, NESTED_OBJECT);
TermsAggregationBuilder outTermsAggregator = new TermsAggregationBuilder(OUT_TERMS)
.field(NESTED_OBJECT + "." + VALUE_FIELD_NAME)
.size(100);
TermsAggregationBuilder outTermsAggregator = new TermsAggregationBuilder(OUT_TERMS).field(
NESTED_OBJECT + "." + VALUE_FIELD_NAME
).size(100);
outNestedBuilder.subAggregation(outTermsAggregator);

//inner nested aggs
// inner nested aggs
NestedAggregationBuilder innerNestedBuilder = new NestedAggregationBuilder(INNER_NESTED, NESTED_OBJECT2);
TermsAggregationBuilder innerTermsAggregator = new TermsAggregationBuilder(INNER_TERMS)
.field(NESTED_OBJECT2 + "." + VALUE_FIELD_NAME2)
.size(100);
TermsAggregationBuilder innerTermsAggregator = new TermsAggregationBuilder(INNER_TERMS).field(
NESTED_OBJECT2 + "." + VALUE_FIELD_NAME2
).size(100);
innerNestedBuilder.subAggregation(innerTermsAggregator);
outTermsAggregator.subAggregation(innerNestedBuilder);

Expand All @@ -962,20 +983,21 @@ public void testBufferingNestedLeafBucketCollector() throws IOException {
DEFAULT_MAX_BUCKETS,
true,
fieldType,
fieldType1);
fieldType1
);

assertEquals(OUT_NESTED, nested.getName());
assertEquals(expectedNestedDocs, nested.getDocCount());

LongTerms outTerms = (LongTerms) nested.getProperty(OUT_TERMS);
assertEquals(1, outTerms.getBuckets().size());

InternalNested internalNested = (InternalNested) (((Object[])outTerms.getProperty(INNER_NESTED))[0]);
InternalNested internalNested = (InternalNested) (((Object[]) outTerms.getProperty(INNER_NESTED))[0]);
assertEquals(expectedNestedDocs, internalNested.getDocCount());

LongTerms innerTerms = (LongTerms) internalNested.getProperty(INNER_TERMS);
assertEquals(bucketKeys.length, innerTerms.getBuckets().size());
for (int i = 0; i <expectedNestedDocs; i++) {
for (int i = 0; i < expectedNestedDocs; i++) {
LongTerms.Bucket bucket = innerTerms.getBuckets().get(i);
assertEquals(bucketKeys[i], bucket.getKeyAsString());
assertEquals(1, bucket.getDocCount());
Expand All @@ -986,11 +1008,12 @@ public void testBufferingNestedLeafBucketCollector() throws IOException {

private DocIdSetIterator getDocIdSetIterator(int[] value) {
int[] bits = new int[value[value.length - 1] + 1];
for(int i : value) {
for (int i : value) {
bits[i] = 1;
}
return new DocIdSetIterator() {
int index = -1;

@Override
public int docID() {
if (index == -1 || index > bits.length || bits[index] != 1) {
Expand Down Expand Up @@ -1032,14 +1055,14 @@ public long cost() {

public void testGetChildAndRootParent() throws IOException {
{
// p: parent c: child
// p: parent c: child
// [p1], [c2,p3], [c4,p6] [p8]
BitSet parentDocs = new FixedBitSet(20);
parentDocs.set(0);
parentDocs.set(3);
parentDocs.set(6);
parentDocs.set(8);
DocIdSetIterator childDocs = getDocIdSetIterator(new int[]{2,4});
DocIdSetIterator childDocs = getDocIdSetIterator(new int[] { 2, 4 });
Tuple<Integer, Integer> res = getChildAndRootParent(parentDocs, childDocs, 0);
assertEquals(0, res.v1().intValue());
assertEquals(2, res.v2().intValue());
Expand All @@ -1058,14 +1081,14 @@ public void testGetChildAndRootParent() throws IOException {
}

{
// p: parent c: child1 d: child2
// [c1,d2,p3], [d4,c5,p6], [c7,d8,p9]
// p: parent c: child1 d: child2
// [c1,d2,p3], [d4,c5,p6], [c7,d8,p9]
BitSet parentDocs = new FixedBitSet(20);
parentDocs.set(3);
parentDocs.set(6);
parentDocs.set(9);
{
DocIdSetIterator childDocs = getDocIdSetIterator(new int[]{1, 5, 7});
DocIdSetIterator childDocs = getDocIdSetIterator(new int[] { 1, 5, 7 });
Tuple<Integer, Integer> res = getChildAndRootParent(parentDocs, childDocs, 2);
assertEquals(3, res.v1().intValue());
assertEquals(1, res.v2().intValue());
Expand All @@ -1080,7 +1103,7 @@ public void testGetChildAndRootParent() throws IOException {
}

{
DocIdSetIterator childDocs = getDocIdSetIterator(new int[]{1, 7});
DocIdSetIterator childDocs = getDocIdSetIterator(new int[] { 1, 7 });
Tuple<Integer, Integer> res = getChildAndRootParent(parentDocs, childDocs, 2);
assertEquals(3, res.v1().intValue());
assertEquals(1, res.v2().intValue());
Expand Down Expand Up @@ -1150,15 +1173,14 @@ private static double[] generateDocuments(List<Document> documents, int numNeste
document.add(new Field(IdFieldMapper.NAME, Uid.encodeId(Integer.toString(id)), IdFieldMapper.Defaults.NESTED_FIELD_TYPE));
document.add(new Field(NestedPathFieldMapper.NAME, path, NestedPathFieldMapper.Defaults.FIELD_TYPE));
long value = randomNonNegativeLong() % 10000;
document.add(new SortedNumericDocValuesField(path+ "." + fieldName, value));
document.add(new SortedNumericDocValuesField(path + "." + fieldName, value));
documents.add(document);
values[nested] = value;
}
return values;
}

private static void generateDocument(List<Document> documents, int id,
String path, String fieldName, long vales ) {
private static void generateDocument(List<Document> documents, int id, String path, String fieldName, long vales) {
Document document = new Document();
document.add(new Field(IdFieldMapper.NAME, Uid.encodeId(Integer.toString(id)), IdFieldMapper.Defaults.NESTED_FIELD_TYPE));
document.add(new Field(NestedPathFieldMapper.NAME, path, NestedPathFieldMapper.Defaults.FIELD_TYPE));
Expand Down

0 comments on commit f264a0b

Please sign in to comment.