This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new ed72e44bf4d CAMEL-20574 - Camel-Milvus: Add more producer operation -
Query (#13774)
ed72e44bf4d is described below
commit ed72e44bf4d0d336588b3aff0e9ef707ad340088
Author: Andrea Cosentino <[email protected]>
AuthorDate: Fri Apr 12 10:59:29 2024 +0200
CAMEL-20574 - Camel-Milvus: Add more producer operation - Query (#13774)
Signed-off-by: Andrea Cosentino <[email protected]>
---
.../camel/component/milvus/MilvusAction.java | 1 +
.../camel/component/milvus/MilvusProducer.java | 18 +++++++++++++++++
.../component/milvus/it/MilvusComponentIT.java | 23 ++++++++++++++++++++++
3 files changed, 42 insertions(+)
diff --git
a/components/camel-milvus/src/main/java/org/apache/camel/component/milvus/MilvusAction.java
b/components/camel-milvus/src/main/java/org/apache/camel/component/milvus/MilvusAction.java
index 3ba9a290ac7..12650e81ea4 100644
---
a/components/camel-milvus/src/main/java/org/apache/camel/component/milvus/MilvusAction.java
+++
b/components/camel-milvus/src/main/java/org/apache/camel/component/milvus/MilvusAction.java
@@ -22,5 +22,6 @@ public enum MilvusAction {
UPSERT,
INSERT,
SEARCH,
+ QUERY,
DELETE
}
diff --git
a/components/camel-milvus/src/main/java/org/apache/camel/component/milvus/MilvusProducer.java
b/components/camel-milvus/src/main/java/org/apache/camel/component/milvus/MilvusProducer.java
index cf58965ca76..58be2861a53 100644
---
a/components/camel-milvus/src/main/java/org/apache/camel/component/milvus/MilvusProducer.java
+++
b/components/camel-milvus/src/main/java/org/apache/camel/component/milvus/MilvusProducer.java
@@ -20,12 +20,14 @@ import java.util.concurrent.ExecutorService;
import io.milvus.client.MilvusClient;
import io.milvus.grpc.MutationResult;
+import io.milvus.grpc.QueryResults;
import io.milvus.param.R;
import io.milvus.param.RpcStatus;
import io.milvus.param.collection.CreateCollectionParam;
import io.milvus.param.collection.LoadCollectionParam;
import io.milvus.param.dml.DeleteParam;
import io.milvus.param.dml.InsertParam;
+import io.milvus.param.dml.QueryParam;
import io.milvus.param.dml.UpsertParam;
import io.milvus.param.highlevel.dml.SearchSimpleParam;
import io.milvus.param.highlevel.dml.response.SearchResponse;
@@ -82,6 +84,9 @@ public class MilvusProducer extends DefaultProducer {
case SEARCH:
search(exchange);
break;
+ case QUERY:
+ query(exchange);
+ break;
case DELETE:
delete(exchange);
break;
@@ -156,6 +161,19 @@ public class MilvusProducer extends DefaultProducer {
}
+ private void query(Exchange exchange) throws Exception {
+ final Message in = exchange.getMessage();
+ final QueryParam body = in.getMandatoryBody(QueryParam.class);
+
+ this.client.loadCollection(
+
LoadCollectionParam.newBuilder().withCollectionName(getEndpoint().getCollection()).withSyncLoad(true).build());
+ R<QueryResults> result = this.client.query(body);
+
+ handleResponseStatus(result);
+ populateResponse(result, exchange);
+
+ }
+
private void delete(Exchange exchange) throws Exception {
final Message in = exchange.getMessage();
final DeleteParam body = in.getMandatoryBody(DeleteParam.class);
diff --git
a/components/camel-milvus/src/test/java/org/apache/camel/component/milvus/it/MilvusComponentIT.java
b/components/camel-milvus/src/test/java/org/apache/camel/component/milvus/it/MilvusComponentIT.java
index 6220150f19c..8b2108c1dc8 100644
---
a/components/camel-milvus/src/test/java/org/apache/camel/component/milvus/it/MilvusComponentIT.java
+++
b/components/camel-milvus/src/test/java/org/apache/camel/component/milvus/it/MilvusComponentIT.java
@@ -22,12 +22,14 @@ import java.util.Random;
import io.milvus.common.clientenum.ConsistencyLevelEnum;
import io.milvus.grpc.DataType;
+import io.milvus.grpc.QueryResults;
import io.milvus.param.IndexType;
import io.milvus.param.MetricType;
import io.milvus.param.collection.CreateCollectionParam;
import io.milvus.param.collection.FieldType;
import io.milvus.param.dml.DeleteParam;
import io.milvus.param.dml.InsertParam;
+import io.milvus.param.dml.QueryParam;
import io.milvus.param.dml.UpsertParam;
import io.milvus.param.highlevel.dml.SearchSimpleParam;
import io.milvus.param.highlevel.dml.response.SearchResponse;
@@ -206,6 +208,27 @@ public class MilvusComponentIT extends MilvusTestSupport {
@Test
@Order(6)
+ public void query() {
+ QueryParam searchSimpleParam = QueryParam.newBuilder()
+ .withCollectionName("test")
+ .withExpr("userAge>0")
+ .withOutFields(Lists.newArrayList("userAge"))
+ .withConsistencyLevel(ConsistencyLevelEnum.STRONG)
+ .build();
+
+ Exchange result = fluentTemplate.to("milvus:test")
+ .withHeader(Milvus.Headers.ACTION, MilvusAction.QUERY)
+ .withBody(
+ searchSimpleParam)
+ .request(Exchange.class);
+
+ assertThat(result).isNotNull();
+ assertThat(result.getException()).isNull();
+
assertThat(result.getMessage().getBody(QueryResults.class).getFieldsDataCount()
== 2);
+ }
+
+ @Test
+ @Order(7)
public void delete() {
DeleteParam delete = DeleteParam.newBuilder()
.withCollectionName("test")