Skip to content

Commit c3873c5

Browse files
authored
(DOCSP-39553) AKO integrate Atlas Search, Search Nodes, Vector Search (#81)
* (DOCSP-39553) AKO integrate Atlas Search, Search Nodes, Vector Search
1 parent 38e3efe commit c3873c5

File tree

3 files changed

+439
-1
lines changed

3 files changed

+439
-1
lines changed

source/atlasdeployment-custom-resource.txt

Lines changed: 348 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,93 @@ specification configured to span multiple cloud service providers:
323323
regionName: CENTRAL_US
324324
priority: 5
325325

326+
Search Index Example
327+
~~~~~~~~~~~~~~~~~~~~
328+
329+
The following example shows an ``AtlasDeployment`` custom resource
330+
specification configured to create a search index for the collection
331+
``listingsAndReviews`` and ``grades``:
332+
333+
.. code-block::
334+
335+
apiVersion: atlas.mongodb.com/v1
336+
kind: AtlasDeployment
337+
metadata:
338+
name: my-atlas-cluster
339+
namespace: mongodb-atlas-system
340+
spec:
341+
deploymentSpec:
342+
backupEnabled: true
343+
clusterType: REPLICASET
344+
name: Test-cluster-M10
345+
replicationSpecs:
346+
- regionConfigs:
347+
- backingProviderName: AWS
348+
electableSpecs:
349+
instanceSize: M10
350+
nodeCount: 3
351+
priority: 7
352+
providerName: AWS
353+
regionName: US_EAST_1
354+
zoneName: Zone 1
355+
searchIndexes:
356+
- DBName: sample_training
357+
collectionName: grades
358+
name: test-vector-search-index
359+
type: vectorSearch
360+
vectorSearch:
361+
fields:
362+
- numDimensions: 1000
363+
path: student_id
364+
similarity: euclidean
365+
type: vector
366+
- DBName: sample_airbnb
367+
collectionName: listingsAndReviews
368+
name: my-index
369+
search:
370+
mappings:
371+
dynamic: true
372+
searchConfigurationRef:
373+
name: atlassearchindexconfig-sample
374+
namespace: mongodb-atlas-system
375+
type: search
376+
terminationProtectionEnabled: false
377+
projectRef:
378+
name: my-project
379+
namespace: mongodb-atlas-system
380+
381+
Search Nodes Example
382+
~~~~~~~~~~~~~~~~~~~~
383+
384+
The following example shows an ``AtlasDeployment`` custom resource
385+
specification configured to create search nodes:
386+
387+
.. code-block::
388+
389+
apiVersion: atlas.mongodb.com/v1
390+
kind: AtlasDeployment
391+
metadata:
392+
name: my-atlas-cluster
393+
namespace: mongodb-atlas-system
394+
spec:
395+
deploymentSpec:
396+
backupEnabled: true
397+
clusterType: REPLICASET
398+
name: Test-cluster-M10
399+
replicationSpecs:
400+
- regionConfigs:
401+
- backingProviderName: AWS
402+
electableSpecs:
403+
instanceSize: M10
404+
nodeCount: 3
405+
priority: 7
406+
providerName: AWS
407+
regionName: US_EAST_1
408+
zoneName: Zone 1
409+
searchNodes:
410+
- instanceSize: S20_HIGHCPU_NVME
411+
nodeCount: 2
412+
326413
.. _atlasdeployment-crd-params:
327414

328415
Parameters
@@ -337,7 +424,7 @@ parameters available.
337424
- For a full list of available parameters for {+serverless-instances+},
338425
see the |service| :oas-atlas-tag:`{+Serverless-Instances+} API </Serverless-Instances>`.
339426

340-
To customize your specifications, Refer to these descriptions, the available
427+
To customize your specifications, refer to these descriptions, the available
341428
examples, and the |api| documentation.
342429

343430
.. setting:: spec.backupRef
@@ -970,6 +1057,266 @@ examples, and the |api| documentation.
9701057
only if you set :setting:`spec.deploymentSpec.clusterType` to
9711058
``GEOSHARDED``.
9721059

1060+
.. setting:: spec.deploymentSpec.searchIndexes
1061+
1062+
*Type*: array
1063+
1064+
*Optional*
1065+
1066+
An array of ``SearchIndex`` objects with fields that describe the search index.
1067+
Each ``SearchIndex`` object contains the following fields:
1068+
1069+
.. list-table::
1070+
:header-rows: 1
1071+
1072+
* - Field
1073+
- Type
1074+
- Description
1075+
1076+
* - ``name``
1077+
- string
1078+
- Human-readable label that identifies this index. Must be unique for a deployment.
1079+
1080+
* - ``DBName``
1081+
- string
1082+
- Human-readable label that identifies the existing
1083+
database that contains the collection with one or more |fts| indexes.
1084+
1085+
.. important::
1086+
1087+
The database that you specify must already exist. If you don't have an existing database,
1088+
:atlas:`create one </create-connect-deployments/>`.
1089+
1090+
* - ``collectionName``
1091+
- string
1092+
- Human-readable label that identifies the collection that contains one or more |fts| indexes.
1093+
1094+
* - ``type``
1095+
- string
1096+
- Type of the index. |service| accepts the following values:
1097+
1098+
- ``search``
1099+
- ``vectorSearch``
1100+
1101+
* - ``search``
1102+
- object
1103+
- You must include this object if ``type`` is ``search``. Otherwise, omit it.
1104+
1105+
* - ``vectorSearch``
1106+
- object
1107+
- You must include this object if ``type`` is ``vectorSearch``. Otherwise, omit it.
1108+
1109+
.. setting:: spec.deploymentSpec.searchIndexes.search
1110+
1111+
*Type*: object
1112+
1113+
*Optional*
1114+
1115+
.. list-table::
1116+
:header-rows: 1
1117+
1118+
* - Field
1119+
- Type
1120+
- Description
1121+
1122+
* - ``synonyms``
1123+
- array
1124+
- Rule sets that map words to their synonyms in this index
1125+
1126+
* - ``mappings``
1127+
- object
1128+
- Index specifications for the collection's fields
1129+
1130+
*Required*
1131+
1132+
* - ``searchConfigurationRef``
1133+
- object
1134+
- A name/namespace reference to the AtlasSearchIndexConfig custom resource, described below.
1135+
1136+
*Required*
1137+
1138+
.. setting:: spec.deploymentSpec.searchIndexes.search.synonyms
1139+
1140+
*Type*: array
1141+
1142+
*Optional*
1143+
1144+
An array of ``Synonym`` objects with fields that describe rule sets that map words to their synonyms in this index.
1145+
Each ``Synonym`` object contains the following fields:
1146+
1147+
.. list-table::
1148+
:header-rows: 1
1149+
1150+
* - Field
1151+
- Type
1152+
- Description
1153+
1154+
* - ``name``
1155+
- string
1156+
- Human-readable label that identifies the synonym definition. Each name must be unique within the same index definition
1157+
1158+
*Required*
1159+
1160+
* - ``analyzer``
1161+
- string
1162+
- Specific pre-defined method chosen to apply to the synonyms to be searched.
1163+
Possible values are:
1164+
1165+
- lucene.standard
1166+
- lucene.standard
1167+
- lucene.simple
1168+
- lucene.whitespace
1169+
- lucene.keyword
1170+
- lucene.arabic
1171+
- lucene.armenian
1172+
- lucene.basque
1173+
- lucene.bengali
1174+
- lucene.brazilian
1175+
- lucene.bulgarian
1176+
- lucene.catalan
1177+
- lucene.chinese
1178+
- lucene.cjk
1179+
- lucene.czech
1180+
- lucene.danish
1181+
- lucene.dutch
1182+
- lucene.english
1183+
- lucene.finnish
1184+
- lucene.french
1185+
- lucene.galician
1186+
- lucene.german
1187+
- lucene.greek
1188+
- lucene.hindi
1189+
- lucene.hungarian
1190+
- lucene.indonesian
1191+
- lucene.irish
1192+
- lucene.italian
1193+
- lucene.japanese
1194+
- lucene.korean
1195+
- lucene.kuromoji
1196+
- lucene.latvian
1197+
- lucene.lithuanian
1198+
- lucene.morfologik
1199+
- lucene.nori
1200+
- lucene.norwegian
1201+
- lucene.persian
1202+
- lucene.portuguese
1203+
- lucene.romanian
1204+
- lucene.russian
1205+
- lucene.smartcn
1206+
- lucene.sorani
1207+
- lucene.spanish
1208+
- lucene.swedish
1209+
- lucene.thai
1210+
- lucene.turkish
1211+
- lucene.ukrainian
1212+
1213+
*Required*
1214+
1215+
* - ``source``
1216+
- object
1217+
- Data set that stores the mapping one or more words map to one or more synonyms of those words
1218+
1219+
*Required*
1220+
1221+
.. setting:: spec.deploymentSpec.searchIndexes.search.synonyms.source
1222+
1223+
*Type*: object
1224+
1225+
*Required*
1226+
1227+
.. list-table::
1228+
:header-rows: 1
1229+
1230+
* - Field
1231+
- Type
1232+
- Description
1233+
1234+
* - ``collection``
1235+
- string
1236+
- Human-readable label that identifies the MongoDB collection that stores words and their applicable synonyms
1237+
1238+
*Required*
1239+
1240+
.. setting:: spec.deploymentSpec.searchIndexes.search.mappings
1241+
1242+
*Type*: object
1243+
1244+
*Required*
1245+
1246+
An object with Index specifications for the collection's fields:
1247+
1248+
.. list-table::
1249+
:header-rows: 1
1250+
1251+
* - ``dynamic``
1252+
- boolean
1253+
- Flag that indicates whether the index uses dynamic or static mappings. Required if mappings.fields is omitted.
1254+
1255+
* - ``fields``
1256+
- JSON/YAML
1257+
- One or more field specifications for the Atlas Search index. Required if mappings.dynamic is omitted or set to false.
1258+
1259+
.. setting:: spec.deploymentSpec.searchIndexes.vectorSearch
1260+
1261+
*Type*: object
1262+
1263+
*Optional*
1264+
1265+
.. list-table::
1266+
:header-rows: 1
1267+
1268+
* - Field
1269+
- Type
1270+
- Description
1271+
1272+
* - ``fields``
1273+
- JSON/YAML
1274+
- Array of JSON objects. See examples https://dochub.mongodb.org/core/avs-vector-type
1275+
1276+
*Required*
1277+
1278+
.. setting:: spec.deploymentSpec.searchNodes
1279+
1280+
*Type*: array
1281+
1282+
*Optional*
1283+
1284+
An array of search nodes configurations. Each element contains two fields:
1285+
1286+
.. list-table::
1287+
:header-rows: 1
1288+
1289+
* - Field
1290+
- Type
1291+
- Description
1292+
1293+
* - ``nodeCount``
1294+
- integer
1295+
- Number of search nodes in the cluster. |service| accepts values 2 through 32, inclusive.
1296+
The default number is `2`.
1297+
1298+
* - ``instanceSize``
1299+
- string
1300+
- Hardware specification for the search node instance sizes.
1301+
|service| accepts one of the following:
1302+
1303+
- ``S20_HIGHCPU_NVME``
1304+
- ``S30_HIGHCPU_NVME``
1305+
- ``S40_HIGHCPU_NVME``
1306+
- ``S50_HIGHCPU_NVME``
1307+
- ``S60_HIGHCPU_NVME``
1308+
- ``S70_HIGHCPU_NVME``
1309+
- ``S80_HIGHCPU_NVME``
1310+
- ``S30_LOWCPU_NVME``
1311+
- ``S40_LOWCPU_NVME``
1312+
- ``S50_LOWCPU_NVME``
1313+
- ``S60_LOWCPU_NVME``
1314+
- ``S80_LOWCPU_NVME``
1315+
- ``S90_LOWCPU_NVME``
1316+
- ``S100_LOWCPU_NVME``
1317+
1318+
The default instance size is ``S20_HIGHCPU_NVME``.
1319+
9731320
.. setting:: spec.deploymentSpec.tags
9741321

9751322
.. include:: /includes/fact-ak8so-tags.rst

0 commit comments

Comments
 (0)