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 b09bae4a411 CAMEL-20575 - Camel-Milvus: Improve documentation (#14012)
b09bae4a411 is described below
commit b09bae4a4114a81901b9919f77f4710901a94bba
Author: Andrea Cosentino <[email protected]>
AuthorDate: Thu May 2 07:03:42 2024 +0200
CAMEL-20575 - Camel-Milvus: Improve documentation (#14012)
Signed-off-by: Andrea Cosentino <[email protected]>
---
.../src/main/docs/milvus-component.adoc | 135 +++++++++++++++++++++
1 file changed, 135 insertions(+)
diff --git a/components/camel-milvus/src/main/docs/milvus-component.adoc
b/components/camel-milvus/src/main/docs/milvus-component.adoc
index 2d43b1efe64..3fdfed6e411 100644
--- a/components/camel-milvus/src/main/docs/milvus-component.adoc
+++ b/components/camel-milvus/src/main/docs/milvus-component.adoc
@@ -39,5 +39,140 @@ include::partial$component-endpoint-options.adoc[]
// endpoint options: END
+== Collection Samples
+
+In the route below, we use the milvus component to create a collection named
_test_ with the given parameters:
+
+[tabs]
+====
+Java::
++
+[source,java]
+----
+FieldType fieldType1 = FieldType.newBuilder()
+ .withName("userID")
+ .withDescription("user identification")
+ .withDataType(DataType.Int64)
+ .withPrimaryKey(true)
+ .withAutoID(true)
+ .build();
+
+FieldType fieldType2 = FieldType.newBuilder()
+ .withName("userFace")
+ .withDescription("face embedding")
+ .withDataType(DataType.FloatVector)
+ .withDimension(64)
+ .build();
+
+FieldType fieldType3 = FieldType.newBuilder()
+ .withName("userAge")
+ .withDescription("user age")
+ .withDataType(DataType.Int8)
+ .build();
+
+from("direct:in")
+ .setHeader(Milvus.Headers.ACTION)
+ .constant(MilvusAction.CREATE_COLLECTION)
+ .setBody()
+ .constant(
+ CreateCollectionParam.newBuilder()
+ .withCollectionName("test")
+ .withDescription("customer info")
+ .withShardsNum(2)
+ .withEnableDynamicField(false)
+ .addFieldType(fieldType1)
+ .addFieldType(fieldType2)
+ .addFieldType(fieldType3)
+ .build())
+ .to("milvus:test");
+----
+====
+
+== Points Samples
+
+=== Upsert
+
+In the route below we use the milvus component to perform insert on points in
the collection named _test_:
+
+[tabs]
+====
+Java::
++
+[source,java]
+----
+private List<List<Float>> generateFloatVectors(int count) {
+ Random ran = new Random();
+ List<List<Float>> vectors = new ArrayList<>();
+ for (int n = 0; n < count; ++n) {
+ List<Float> vector = new ArrayList<>();
+ for (int i = 0; i < 64; ++i) {
+ vector.add(ran.nextFloat());
+ }
+ vectors.add(vector);
+ }
+
+ return vectors;
+}
+
+
+Random ran = new Random();
+List<Integer> ages = new ArrayList<>();
+for (long i = 0L; i < 2; ++i) {
+ ages.add(ran.nextInt(99));
+}
+List<InsertParam.Field> fields = new ArrayList<>();
+fields.add(new InsertParam.Field("userAge", ages));
+fields.add(new InsertParam.Field("userFace", generateFloatVectors(2)));
+
+from("direct:in")
+ .setHeader(Milvus.Headers.ACTION)
+ .constant(MilvusAction.INSERT)
+ .setBody()
+ .constant(
+ InsertParam.newBuilder()
+ .withCollectionName("test")
+ .withFields(fields)
+ .build())
+ .to("qdrant:test");
+----
+====
+
+
+=== Search
+
+In the route below, we use the milvus component to retrieve information by
query from the collection named _test_:
+
+[tabs]
+====
+Java::
++
+[source,java]
+----
+private List<Float> generateFloatVector() {
+ Random ran = new Random();
+ List<Float> vector = new ArrayList<>();
+ for (int i = 0; i < 64; ++i) {
+ vector.add(ran.nextFloat());
+ }
+ return vector;
+}
+
+from("direct:in")
+ .setHeader(Milvus.Headers.ACTION)
+ .constant(MilvusAction.SEARCH)
+ .setBody()
+ .constant(SearchSimpleParam.newBuilder()
+ .withCollectionName("test")
+ .withVectors(generateFloatVector())
+ .withFilter("userAge>0")
+ .withLimit(100L)
+ .withOffset(0L)
+ .withOutputFields(Lists.newArrayList("userAge"))
+ .withConsistencyLevel(ConsistencyLevelEnum.STRONG)
+ .build())
+ .to("qdrant:myCollection");
+----
+====
+
include::spring-boot:partial$starter.adoc[]