Skip to content

Commit 567cd7d

Browse files
committed
docs
1 parent 7dcb116 commit 567cd7d

File tree

7 files changed

+93
-15
lines changed

7 files changed

+93
-15
lines changed

astra-db-client/src/main/java/com/dtsx/astra/sdk/AstraDB.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -154,12 +154,22 @@ public AstraDB(@NonNull String token, @NonNull UUID databaseId, String region, @
154154
.findById(databaseId.toString())
155155
.orElseThrow(() -> new DatabaseNotFoundException(databaseId.toString()));
156156

157-
this.apiEndpoint = ApiLocator
158-
.getApiJsonEndpoint(env, databaseId.toString(), region != null ? region : db.getInfo().getRegion());
159-
// Create Json Api Client without AstraDB
157+
if (region == null) region = db.getInfo().getRegion();
158+
160159
ServiceDeployment<ServiceHttp> jsonDeploy = new ServiceDeployment<>();
161160
jsonDeploy.addDatacenterTokenProvider("default", new SimpleTokenProvider(token));
161+
this.apiEndpoint = ApiLocator.getApiJsonEndpoint(env, databaseId.toString(), region);
162162
jsonDeploy.addDatacenterServices("default", new ServiceHttp("json", apiEndpoint, apiEndpoint));
163+
164+
final String defaultRegion = region;
165+
db.getInfo()
166+
.getDatacenters().stream()
167+
.filter(dc->!dc.getRegion().equals(defaultRegion))
168+
.forEach(dc -> {
169+
String dcApiEndpoint = ApiLocator.getApiJsonEndpoint(env, databaseId.toString(), dc.getRegion());
170+
jsonDeploy.addDatacenterServices(dc.getName(), new ServiceHttp("json", dcApiEndpoint, dcApiEndpoint));
171+
});
172+
163173
this.apiClient = new ApiClient(jsonDeploy);
164174
if (keyspace == null) {
165175
keyspace = db.getInfo().getKeyspace();
@@ -296,7 +306,10 @@ public AstraDBCollection createCollection(String name, int vectorDimension, Simi
296306
* object type
297307
*/
298308
public <T> AstraDBRepository<T> createCollection(String name, int vectorDimension, Class<T> bean) {
299-
return new AstraDBRepository(nsClient.createCollection(name, vectorDimension, bean));
309+
return new AstraDBRepository<T>(nsClient.createCollection(CollectionDefinition.builder()
310+
.name(name)
311+
.vector(vectorDimension, SimilarityMetric.cosine)
312+
.build(), bean));
300313
}
301314

302315

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.dtsx.astra.sdk.documentation;
2+
import com.dtsx.astra.sdk.AstraDB;
3+
import com.dtsx.astra.sdk.AstraDBCollection;
4+
import io.stargate.sdk.json.domain.CollectionDefinition;
5+
import io.stargate.sdk.json.domain.SimilarityMetric;
6+
7+
public class CreateCollection {
8+
public static void main(String[] args) {
9+
// Given an active db
10+
//AstraDB db = new AstraDB("<token>", "<api_endpoint>");
11+
AstraDB db = new AstraDB(
12+
"AstraCS:iLPiNPxSSIdefoRdkTWCfWXt:2b360d096e0e6cb732371925ffcc6485541ff78067759a2a1130390e231c2c7a",
13+
"https://1537fca7-e315-4a63-8773-846bde477518-us-east1.apps.astra.datastax.com");
14+
// Create collection with no vector
15+
AstraDBCollection collection1 = db.createCollection("collection_simple");
16+
17+
// Create collection with vector
18+
AstraDBCollection collection2 = db.createCollection(
19+
"collection_vector1",
20+
1536,
21+
SimilarityMetric.cosine);
22+
23+
// Create collection with vector (builder)
24+
AstraDBCollection collection3 = db.createCollection(CollectionDefinition
25+
.builder()
26+
.name("collection_vector2")
27+
.vector(1536, SimilarityMetric.euclidean)
28+
.build());
29+
}
30+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.dtsx.astra.sdk.documentation;
2+
import com.dtsx.astra.sdk.AstraDB;
3+
import io.stargate.sdk.json.domain.CollectionDefinition;
4+
5+
import java.util.Optional;
6+
7+
public class DeleteCollection {
8+
public static void main(String[] args) {
9+
// Given an active db
10+
//AstraDB db = new AstraDB("<token>", "<api_endpoint>");
11+
AstraDB db = new AstraDB(
12+
"AstraCS:iLPiNPxSSIdefoRdkTWCfWXt:2b360d096e0e6cb732371925ffcc6485541ff78067759a2a1130390e231c2c7a",
13+
"https://1537fca7-e315-4a63-8773-846bde477518-us-east1.apps.astra.datastax.com");
14+
// Find a collection
15+
db.deleteCollection("tmp_collection");
16+
}
17+
}

astra-db-client/src/test/java/com/dtsx/astra/sdk/documentation/ListCollections.java renamed to astra-db-client/src/test/java/com/dtsx/astra/sdk/documentation/FindAllCollections.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,18 @@
22
import com.dtsx.astra.sdk.AstraDB;
33
import io.stargate.sdk.json.domain.CollectionDefinition;
44

5-
public class ListCollections {
5+
public class FindAllCollections {
66
public static void main(String[] args) {
77
// Given an active db
88
AstraDB db = new AstraDB("<token>", "<api_endpoint>");
9+
910
// Iterate over all collections
1011
db.findAllCollections().forEach(col -> {
11-
System.out.println("name=" + col.getName());
12+
System.out.print("\nname=" + col.getName());
1213
if (col.getOptions() != null && col.getOptions().getVector() != null) {
1314
CollectionDefinition.Options.Vector vector = col.getOptions().getVector();
14-
System.out.println("dim=" + vector.getDimension());
15-
System.out.println("metric=" + vector.getMetric());
15+
System.out.print(",dim=" + vector.getDimension());
16+
System.out.print(",metric=" + vector.getMetric());
1617
}
1718
});
1819
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.dtsx.astra.sdk.documentation;
2+
import com.dtsx.astra.sdk.AstraDB;
3+
import io.stargate.sdk.json.domain.CollectionDefinition;
4+
5+
import java.util.Optional;
6+
7+
public class FindCollection {
8+
public static void main(String[] args) {
9+
// Given an active db
10+
AstraDB db = new AstraDB("<token>", "<api_endpoint>");
11+
12+
// Find a collection
13+
Optional<CollectionDefinition> collection = db.findCollection("collection1");
14+
15+
// Another test with a collection that does not exist
16+
boolean collectionExists = db.isCollectionExists("collection1");
17+
}
18+
}

astra-db-client/src/test/java/com/dtsx/astra/sdk/vector/demo/VectorAsAFeatureTest.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,12 @@ public void shouldDoCollection() {
7676
doc2.ifPresent(this::showResult);
7777

7878
// Find documents using vector search
79-
Page<JsonResult> results = collection.queryForPage(
79+
Page<JsonResult> results = collection.findPage(
8080
SelectQuery.builder()
8181
.where("$vector").isEqualsTo(new float[]{0.15f, 0.1f, 0.1f, 0.35f, 0.55f})
8282
// best way to do it below
8383
//.orderByAnn(new float[]{0.15f, 0.1f, 0.1f, 0.35f, 0.55f})
84-
.limit(2)
84+
.withLimit(2)
8585
.build());
8686
System.out.println(results.getResults().get(0).getData().get("name"));
8787
System.out.println(results.getResults().size());
@@ -94,11 +94,11 @@ public void shouldDoCollection() {
9494
* options = {"limit": 100}
9595
* projection = {"$vector": 1, "$similarity": 1}
9696
*/
97-
Page<JsonResult> results2 = collection.queryForPage(
97+
Page<JsonResult> results2 = collection.findPage(
9898
SelectQuery.builder()
9999
.orderByAnn(new float[]{0.15f, 0.1f, 0.1f, 0.35f, 0.55f})
100-
.limit(2)
101-
.selectVector().selectSimilarity()
100+
.withLimit(2)
101+
.includeSimilarity()
102102
.build());
103103
showPage(results2);
104104

@@ -110,7 +110,6 @@ public void shouldDoCollection() {
110110
*/
111111
Optional<JsonResult> doc3 = collection.findOne(SelectQuery.builder()
112112
.orderByAnn(new float[]{0.15f, 0.1f, 0.1f, 0.35f, 0.55f})
113-
.selectVector()
114113
.build());
115114
doc3.ifPresent(this::showResult);
116115

astra-db-client/src/test/resources/logback-test.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
44
<encoder>
5-
<pattern>%d{HH:mm:ss.SSS} %magenta(%-5level) %cyan(%-47logger) : %msg%n</pattern>
5+
<pattern>%d{HH:mm:ss.SSS} %magenta(%-5level) %cyan(%-20logger) : %msg%n</pattern>
66
</encoder>
77
</appender>
88

0 commit comments

Comments
 (0)