Skip to content

Commit e2c424f

Browse files
committed
Add hybrid Synxt
1 parent 5ae38de commit e2c424f

File tree

2 files changed

+54
-0
lines changed
  • astra-db-java/src/main/java/com/datastax/astra/client/core/query
  • examples/src/main/java/com/datastax/astra/client/collections/findrerank

2 files changed

+54
-0
lines changed

astra-db-java/src/main/java/com/datastax/astra/client/core/query/Sort.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,4 +236,19 @@ public static Sort hybrid(Hybrid hybrid) {
236236
.build();
237237
}
238238

239+
/**
240+
* Build a sort clause with vectorize.
241+
*
242+
* @param hybrid
243+
* hybrid sort
244+
* @return
245+
* sort instance.
246+
*/
247+
public static Sort hybrid(String hybrid) {
248+
return internalBuilder()
249+
.field(DataAPIKeywords.HYBRID.getKeyword())
250+
.hybrid(new Hybrid(hybrid))
251+
.build();
252+
}
253+
239254
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.datastax.astra.client.collections.findrerank;
2+
3+
import com.datastax.astra.client.DataAPIClient;
4+
import com.datastax.astra.client.collections.Collection;
5+
import com.datastax.astra.client.collections.commands.options.CollectionFindAndRerankOptions;
6+
import com.datastax.astra.client.collections.definition.documents.Document;
7+
import com.datastax.astra.client.core.hybrid.Hybrid;
8+
import com.datastax.astra.client.core.query.Sort;
9+
import com.datastax.astra.client.core.rerank.RerankedResult;
10+
11+
public class SampleFind {
12+
13+
public static void main(String[] args) {
14+
Collection<Document> collection = new DataAPIClient("TOKEN")
15+
.getDatabase("API_ENDPOINT")
16+
.getCollection("COLLECTION_NAME");
17+
18+
// With Vectorize
19+
for (RerankedResult<Document> results : collection
20+
.findAndRerank(new CollectionFindAndRerankOptions()
21+
.sort(Sort.hybrid("A tree on a hill")))) {
22+
System.out.println(results.getDocument());
23+
}
24+
25+
// Without Vectorize
26+
Hybrid hybrid = new Hybrid()
27+
.vector(new float[]{0.25f, 0.25f, 0.25f, 0.25f, 0.25f})
28+
.lexical("A tree on a hill");
29+
for (RerankedResult<Document> results : collection
30+
.findAndRerank(new CollectionFindAndRerankOptions()
31+
.sort(Sort.hybrid(hybrid))
32+
.rerankOn("$lexical")
33+
.rerankQuery("A house in the woods"))) {
34+
System.out.println(results.getDocument());
35+
}
36+
37+
// Use a different query in the reranking step
38+
}
39+
}

0 commit comments

Comments
 (0)