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 <anco...@gmail.com> AuthorDate: Thu May 2 07:03:42 2024 +0200 CAMEL-20575 - Camel-Milvus: Improve documentation (#14012) Signed-off-by: Andrea Cosentino <anco...@gmail.com> --- .../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[]