You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by fm...@apache.org on 2026/03/27 08:46:08 UTC

(camel) 02/04: Add missing configurable properties to Milvus helpers

This is an automated email from the ASF dual-hosted git repository.

fmariani pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 0fffdc33ac1bc156b77de9bd13fea00b6fe35317
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Mon Mar 23 21:11:06 2026 +0100

    Add missing configurable properties to Milvus helpers
    
    - MilvusHelperSearch: add offset and consistencyLevel properties
      (consistencyLevel was hardcoded to STRONG)
    - MilvusHelperCreateIndex: add indexName property
    
    Co-Authored-By: Claude Opus 4.6 <no...@anthropic.com>
---
 .../milvus/helpers/MilvusHelperCreateIndex.java    | 23 +++++++++++++---
 .../milvus/helpers/MilvusHelperSearch.java         | 31 +++++++++++++++++++++-
 2 files changed, 50 insertions(+), 4 deletions(-)

diff --git a/components/camel-ai/camel-milvus/src/main/java/org/apache/camel/component/milvus/helpers/MilvusHelperCreateIndex.java b/components/camel-ai/camel-milvus/src/main/java/org/apache/camel/component/milvus/helpers/MilvusHelperCreateIndex.java
index 3f749e802c19..492aded93a52 100644
--- a/components/camel-ai/camel-milvus/src/main/java/org/apache/camel/component/milvus/helpers/MilvusHelperCreateIndex.java
+++ b/components/camel-ai/camel-milvus/src/main/java/org/apache/camel/component/milvus/helpers/MilvusHelperCreateIndex.java
@@ -32,6 +32,7 @@ public class MilvusHelperCreateIndex implements Processor {
 
     private String collectionName = "default_collection";
     private String vectorFieldName = "embedding";
+    private String indexName;
     private String indexType = "IVF_FLAT";
     private String metricType = "COSINE";
     private String extraParam = "{\"nlist\": 128}";
@@ -41,14 +42,19 @@ public class MilvusHelperCreateIndex implements Processor {
         IndexType idxType = IndexType.valueOf(indexType);
         MetricType metric = MetricType.valueOf(metricType);
 
-        CreateIndexParam param = CreateIndexParam.newBuilder()
+        CreateIndexParam.Builder builder = CreateIndexParam.newBuilder()
                 .withCollectionName(collectionName)
                 .withFieldName(vectorFieldName)
                 .withIndexType(idxType)
                 .withMetricType(metric)
                 .withExtraParam(extraParam)
-                .withSyncMode(Boolean.TRUE)
-                .build();
+                .withSyncMode(Boolean.TRUE);
+
+        if (indexName != null && !indexName.isEmpty()) {
+            builder.withIndexName(indexName);
+        }
+
+        CreateIndexParam param = builder.build();
 
         exchange.getIn().setBody(param);
         exchange.getIn().setHeader(MilvusHeaders.ACTION, MilvusAction.CREATE_INDEX);
@@ -70,6 +76,17 @@ public class MilvusHelperCreateIndex implements Processor {
         this.vectorFieldName = vectorFieldName;
     }
 
+    public String getIndexName() {
+        return indexName;
+    }
+
+    /**
+     * @param indexName the name to assign to the index (e.g., {@code myVectorIndex})
+     */
+    public void setIndexName(String indexName) {
+        this.indexName = indexName;
+    }
+
     public String getIndexType() {
         return indexType;
     }
diff --git a/components/camel-ai/camel-milvus/src/main/java/org/apache/camel/component/milvus/helpers/MilvusHelperSearch.java b/components/camel-ai/camel-milvus/src/main/java/org/apache/camel/component/milvus/helpers/MilvusHelperSearch.java
index e13e184f8bec..20d66307d317 100644
--- a/components/camel-ai/camel-milvus/src/main/java/org/apache/camel/component/milvus/helpers/MilvusHelperSearch.java
+++ b/components/camel-ai/camel-milvus/src/main/java/org/apache/camel/component/milvus/helpers/MilvusHelperSearch.java
@@ -36,6 +36,8 @@ public class MilvusHelperSearch implements Processor {
     private String collectionName = "default_collection";
     private String outputFields = "content";
     private String limit = "10";
+    private String offset = "0";
+    private String consistencyLevel = "STRONG";
     private String filter;
 
     @SuppressWarnings("unchecked")
@@ -55,12 +57,16 @@ public class MilvusHelperSearch implements Processor {
             }
         }
 
+        long searchOffset = Long.parseLong(offset);
+        ConsistencyLevelEnum consistency = ConsistencyLevelEnum.valueOf(consistencyLevel);
+
         SearchSimpleParam.Builder builder = SearchSimpleParam.newBuilder()
                 .withCollectionName(collectionName)
                 .withVectors(queryEmbedding)
                 .withLimit(searchLimit)
+                .withOffset(searchOffset)
                 .withOutputFields(fields)
-                .withConsistencyLevel(ConsistencyLevelEnum.STRONG);
+                .withConsistencyLevel(consistency);
 
         if (filter != null && !filter.isEmpty()) {
             builder.withFilter(filter);
@@ -103,6 +109,29 @@ public class MilvusHelperSearch implements Processor {
         this.limit = limit;
     }
 
+    public String getOffset() {
+        return offset;
+    }
+
+    /**
+     * @param offset the number of results to skip as a string (e.g., {@code 0}, {@code 10})
+     */
+    public void setOffset(String offset) {
+        this.offset = offset;
+    }
+
+    public String getConsistencyLevel() {
+        return consistencyLevel;
+    }
+
+    /**
+     * @param consistencyLevel the Milvus {@link io.milvus.common.clientenum.ConsistencyLevelEnum} enum name (e.g.,
+     *                         {@code STRONG}, {@code BOUNDED}, {@code EVENTUALLY})
+     */
+    public void setConsistencyLevel(String consistencyLevel) {
+        this.consistencyLevel = consistencyLevel;
+    }
+
     public String getFilter() {
         return filter;
     }