Skip to content

Commit 92231e9

Browse files
authored
Merge pull request #2037 from Danielle9897/RDoc-3336-customizeVectorFieldWithBuilder
RDoc-3336 Show how to customize the vector field in a static index using a builder
2 parents 2e877b2 + ff332d1 commit 92231e9

File tree

1 file changed

+32
-3
lines changed

1 file changed

+32
-3
lines changed

Documentation/7.0/Samples/csharp/Raven.Documentation.Samples/AiIntegration/VectorSearch/VectorSearchUsingStaticIndex.cs

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,10 @@ public Products_ByVector_Text()
3737
VectorFromText = CreateVector(product.Name)
3838
};
3939

40-
// Customize the vector field options:
40+
// You can customize the vector field using EITHER of the following syntaxes:
41+
// ==========================================================================
42+
43+
// Customize using VectorOptions:
4144
VectorIndexes.Add(x => x.VectorFromText,
4245
new VectorOptions()
4346
{
@@ -53,6 +56,14 @@ public Products_ByVector_Text()
5356
// Optionally, set the number of candidates
5457
NumberOfCandidatesForIndexing = 20
5558
});
59+
60+
// OR - Customize using builder:
61+
Vector(x=>x.VectorFromText,
62+
builder => builder
63+
.SourceEmbedding(VectorEmbeddingType.Text)
64+
.DestinationEmbedding(VectorEmbeddingType.Single)
65+
.NumberOfEdges(20)
66+
.NumberOfCandidates(20));
5667

5768
// The index MUST use the Corax search engine
5869
SearchEngineType = Raven.Client.Documents.Indexes.SearchEngineType.Corax;
@@ -113,7 +124,7 @@ public Movies_ByVector_Single()
113124
VectorFromSingle = CreateVector(movie.TagsEmbeddedAsSingle)
114125
};
115126

116-
// Customize the vector field options:
127+
// EITHER - Customize the vector field using VectorOptions:
117128
VectorIndexes.Add(x => x.VectorFromSingle,
118129
new VectorOptions()
119130
{
@@ -131,6 +142,15 @@ public Movies_ByVector_Single()
131142
NumberOfEdges = 20,
132143
NumberOfCandidatesForIndexing = 20
133144
});
145+
146+
// OR - Customize the vector field using builder:
147+
Vector(x => x.VectorFromSingle,
148+
builder => builder
149+
.SourceEmbedding(VectorEmbeddingType.Single)
150+
.DestinationEmbedding(VectorEmbeddingType.Single)
151+
.Dimensions(2)
152+
.NumberOfEdges(20)
153+
.NumberOfCandidates(20));
134154

135155
// The index MUST use the Corax search engine
136156
SearchEngineType = Raven.Client.Documents.Indexes.SearchEngineType.Corax;
@@ -192,7 +212,7 @@ public Movies_ByVector_Int8()
192212
VectorFromInt8Arrays = CreateVector(movie.TagsEmbeddedAsInt8)
193213
};
194214

195-
// Customize the vector field options:
215+
// EITHER - Customize the vector field using VectorOptions:
196216
VectorIndexes.Add(x => x.VectorFromInt8Arrays,
197217
new VectorOptions()
198218
{
@@ -210,6 +230,15 @@ public Movies_ByVector_Int8()
210230
NumberOfEdges = 20,
211231
NumberOfCandidatesForIndexing = 20
212232
});
233+
234+
// OR - Customize the vector field using builder:
235+
Vector(x => x.VectorFromInt8Arrays,
236+
builder => builder
237+
.SourceEmbedding(VectorEmbeddingType.Int8)
238+
.DestinationEmbedding(VectorEmbeddingType.Int8)
239+
.Dimensions(2)
240+
.NumberOfEdges(20)
241+
.NumberOfCandidates(20));
213242

214243
// The index MUST use the Corax search engine
215244
SearchEngineType = Raven.Client.Documents.Indexes.SearchEngineType.Corax;

0 commit comments

Comments
 (0)