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 <anco...@gmail.com>
AuthorDate: Fri Apr 12 10:59:29 2024 +0200

    CAMEL-20574 - Camel-Milvus: Add more producer operation - Query (#13774)
    
    Signed-off-by: Andrea Cosentino <anco...@gmail.com>
---
 .../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")

Reply via email to