Skip to content

Commit 5b7a1ab

Browse files
owaiskazi19YeonghyeonKO
authored andcommitted
Add WithFieldName implementation to QueryBuilders (opensearch-project#1285)
Signed-off-by: Owais <[email protected]> Signed-off-by: yeonghyeonKo <[email protected]>
1 parent 5264e08 commit 5b7a1ab

File tree

3 files changed

+30
-3
lines changed

3 files changed

+30
-3
lines changed

src/main/java/org/opensearch/neuralsearch/query/NeuralKNNQueryBuilder.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.opensearch.core.xcontent.XContentBuilder;
1212
import org.opensearch.index.query.AbstractQueryBuilder;
1313
import org.opensearch.index.query.QueryBuilder;
14+
import org.opensearch.index.query.WithFieldName;
1415
import org.opensearch.index.query.QueryRewriteContext;
1516
import org.opensearch.index.query.QueryShardContext;
1617
import org.opensearch.knn.index.query.KNNQueryBuilder;
@@ -48,7 +49,7 @@
4849
*/
4950

5051
@Getter
51-
public class NeuralKNNQueryBuilder extends AbstractQueryBuilder<NeuralKNNQueryBuilder> {
52+
public class NeuralKNNQueryBuilder extends AbstractQueryBuilder<NeuralKNNQueryBuilder> implements WithFieldName {
5253
/**
5354
* The name of the query
5455
*/
@@ -83,6 +84,7 @@ public static Builder builder() {
8384
*
8485
* @return The field name used in the KNN query
8586
*/
87+
@Override
8688
public String fieldName() {
8789
return knnQueryBuilder.fieldName();
8890
}

src/main/java/org/opensearch/neuralsearch/query/NeuralQueryBuilder.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import org.opensearch.index.mapper.NumberFieldMapper;
3939
import org.opensearch.index.query.AbstractQueryBuilder;
4040
import org.opensearch.index.query.QueryBuilder;
41+
import org.opensearch.index.query.WithFieldName;
4142
import org.opensearch.index.query.QueryRewriteContext;
4243
import org.opensearch.index.query.QueryShardContext;
4344
import org.opensearch.knn.index.query.parser.MethodParametersParser;
@@ -69,7 +70,7 @@
6970
@Accessors(chain = true, fluent = true)
7071
@NoArgsConstructor(access = AccessLevel.PRIVATE)
7172
@AllArgsConstructor(access = AccessLevel.PRIVATE)
72-
public class NeuralQueryBuilder extends AbstractQueryBuilder<NeuralQueryBuilder> implements ModelInferenceQueryBuilder {
73+
public class NeuralQueryBuilder extends AbstractQueryBuilder<NeuralQueryBuilder> implements ModelInferenceQueryBuilder, WithFieldName {
7374

7475
public static final String NAME = "neural";
7576

@@ -610,4 +611,14 @@ private static boolean validateKNNQueryType(Integer k, Float maxDistance, Float
610611
}
611612
return queryCount == 1;
612613
}
614+
615+
/**
616+
* Gets the field name that this query is searching against.
617+
*
618+
* @return The field name used in the Neural query
619+
*/
620+
@Override
621+
public String fieldName() {
622+
return this.fieldName;
623+
}
613624
}

src/main/java/org/opensearch/neuralsearch/query/NeuralSparseQueryBuilder.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import org.opensearch.index.mapper.MappedFieldType;
4242
import org.opensearch.index.query.AbstractQueryBuilder;
4343
import org.opensearch.index.query.QueryBuilder;
44+
import org.opensearch.index.query.WithFieldName;
4445
import org.opensearch.index.query.QueryRewriteContext;
4546
import org.opensearch.index.query.QueryShardContext;
4647
import org.opensearch.neuralsearch.ml.MLCommonsClientAccessor;
@@ -69,7 +70,10 @@
6970
@Accessors(chain = true, fluent = true)
7071
@NoArgsConstructor
7172
@AllArgsConstructor
72-
public class NeuralSparseQueryBuilder extends AbstractQueryBuilder<NeuralSparseQueryBuilder> implements ModelInferenceQueryBuilder {
73+
public class NeuralSparseQueryBuilder extends AbstractQueryBuilder<NeuralSparseQueryBuilder>
74+
implements
75+
ModelInferenceQueryBuilder,
76+
WithFieldName {
7377
public static final String NAME = "neural_sparse";
7478
@VisibleForTesting
7579
static final ParseField QUERY_TEXT_FIELD = new ParseField("query_text");
@@ -540,4 +544,14 @@ private boolean shouldUseModelId() {
540544
public static float bytesToFloat(byte[] bytes) {
541545
return ByteBuffer.wrap(bytes).getFloat();
542546
}
547+
548+
/**
549+
* Gets the field name that this query is searching against.
550+
*
551+
* @return The field name used in the Neural Sparse query
552+
*/
553+
@Override
554+
public String fieldName() {
555+
return this.fieldName;
556+
}
543557
}

0 commit comments

Comments
 (0)