vybekiit 0.7.26 → 0.7.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.js +3891 -1301
- package/dist/global-skills/aws-cdk/SKILL.md +19 -5
- package/dist/global-skills/aws-cdk/references/fast-deployments.md +191 -0
- package/dist/global-skills/aws-cdk/references/troubleshooting-deployment.md +16 -0
- package/dist/global-skills/aws-cloudformation/SKILL.md +16 -26
- package/dist/global-skills/aws-cloudformation/references/check-cloudformation-template-compliance.script.md +7 -3
- package/dist/global-skills/aws-cloudformation/references/cloudformation-language-server.md +177 -0
- package/dist/global-skills/aws-cloudformation/references/cloudformation-pre-deploy-validation.script.md +8 -2
- package/dist/global-skills/aws-cloudformation/references/persist-template-context.script.md +5 -8
- package/dist/global-skills/aws-cloudformation/references/retrieve-template-context.script.md +1 -1
- package/dist/global-skills/aws-cloudformation/references/security-considerations.md +51 -0
- package/dist/global-skills/aws-cloudformation/references/troubleshoot-failed-stack.script.md +138 -0
- package/dist/global-skills/aws-cloudformation/references/{validate-cloudformation-template.script.md → validate-with-cfn-lint.script.md} +15 -27
- package/dist/global-skills/aws-cloudformation/references/validate-with-cloudformation-validate.script.md +181 -0
- package/dist/global-skills/aws-cloudformation/references/validation-tool-selection.md +44 -0
- package/dist/global-skills/aws-serverless/SKILL.md +9 -1
- package/dist/global-skills/aws-serverless/references/architecture.md +3 -1
- package/dist/global-skills/aws-serverless/references/lambda.md +3 -1
- package/dist/global-skills/aws-serverless/references/orchestration.md +1 -0
- package/dist/global-skills/better-auth-best-practices/SKILL.md +18 -8
- package/dist/global-skills/eas-app-stores/SKILL.md +31 -15
- package/dist/global-skills/eas-app-stores/agents/openai.yaml +2 -2
- package/dist/global-skills/eas-app-stores/references/ios-app-store.md +37 -32
- package/dist/global-skills/eas-app-stores/references/native-ios.md +167 -0
- package/dist/global-skills/eas-app-stores/references/play-store.md +3 -7
- package/dist/global-skills/eas-app-stores/references/testflight.md +39 -35
- package/dist/global-skills/eas-simulator/SKILL.md +48 -26
- package/dist/global-skills/eas-simulator/references/controllers.md +32 -3
- package/dist/global-skills/eas-simulator/references/run-your-app.md +34 -4
- package/dist/global-skills/eas-simulator/references/troubleshooting.md +8 -4
- package/dist/global-skills/eas-update/SKILL.md +146 -0
- package/dist/global-skills/eas-update/agents/openai.yaml +4 -0
- package/dist/global-skills/expo-animation/RECIPES.md +2 -2
- package/dist/global-skills/expo-animation/SKILL.md +9 -2
- package/dist/global-skills/expo-brownfield/SKILL.md +18 -11
- package/dist/global-skills/expo-brownfield/agents/openai.yaml +2 -2
- package/dist/global-skills/expo-brownfield/references/brownfield-integrated.md +94 -69
- package/dist/global-skills/expo-brownfield/references/brownfield-isolated.md +40 -42
- package/dist/global-skills/expo-brownfield/references/comparison.md +5 -5
- package/dist/global-skills/expo-brownfield/references/feature-integration.md +163 -0
- package/dist/global-skills/expo-brownfield/references/troubleshooting.md +17 -17
- package/dist/global-skills/expo-brownfield/references/version-compatibility.md +40 -0
- package/dist/global-skills/expo-data-fetching/SKILL.md +27 -6
- package/dist/global-skills/expo-design-system/SKILL.md +27 -7
- package/dist/global-skills/expo-design-system/references/audit.md +7 -2
- package/dist/global-skills/expo-design-system/references/native-slop.md +74 -0
- package/dist/global-skills/expo-examples/SKILL.md +0 -1
- package/dist/global-skills/expo-examples/references/catalog.md +1 -1
- package/dist/global-skills/expo-migrate-module/SKILL.md +21 -10
- package/dist/global-skills/expo-migrate-module/references/compatibility.md +80 -23
- package/dist/global-skills/expo-migrate-module/references/migration-map.md +162 -11
- package/dist/global-skills/expo-native-ui/SKILL.md +25 -16
- package/dist/global-skills/expo-native-ui/agents/openai.yaml +2 -2
- package/dist/global-skills/expo-native-ui/references/controls.md +5 -46
- package/dist/global-skills/expo-native-ui/references/icons.md +21 -2
- package/dist/global-skills/expo-native-ui/references/media.md +15 -20
- package/dist/global-skills/expo-native-ui/references/visual-effects.md +12 -11
- package/dist/global-skills/expo-overview/SKILL.md +17 -12
- package/dist/global-skills/expo-router/SKILL.md +5 -3
- package/dist/global-skills/expo-router/references/tabs.md +5 -5
- package/dist/global-skills/expo-upgrade/SKILL.md +3 -1
- package/dist/global-skills/expo-web-to-native/references/false-friends.md +2 -2
- package/dist/global-skills/expo-web-to-native/references/native-patterns.md +1 -1
- package/dist/global-skills/firebase-ai-logic-basics/SKILL.md +13 -16
- package/dist/global-skills/firebase-ai-logic-basics/references/ios_setup.md +4 -5
- package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_android.md +4 -4
- package/dist/global-skills/firebase-ai-logic-basics/references/usage_patterns_web.md +3 -3
- package/dist/global-skills/firebase-auth-basics/SKILL.md +11 -6
- package/dist/global-skills/firebase-auth-basics/references/client_sdk_android.md +4 -5
- package/dist/global-skills/firebase-auth-basics/references/client_sdk_web.md +3 -3
- package/dist/global-skills/firebase-auth-basics/references/flutter_setup.md +24 -25
- package/dist/global-skills/firebase-auth-basics/references/security_rules.md +4 -2
- package/dist/global-skills/firebase-crashlytics/references/android_setup.md +7 -4
- package/dist/global-skills/firebase-crashlytics/references/ios_setup.md +2 -3
- package/dist/global-skills/firebase-data-connect/SKILL.md +2 -1
- package/dist/global-skills/firebase-data-connect/examples.md +4 -4
- package/dist/global-skills/firebase-data-connect/reference/config.md +5 -4
- package/dist/global-skills/firebase-data-connect/reference/realtime.md +1 -2
- package/dist/global-skills/firebase-data-connect/reference/sdk_flutter.md +2 -2
- package/dist/global-skills/firebase-data-connect/reference/sdk_ios.md +2 -2
- package/dist/global-skills/firebase-data-connect/reference/sdk_web.md +17 -6
- package/dist/global-skills/firebase-data-connect/reference/security.md +5 -5
- package/dist/global-skills/firebase-data-connect/templates.md +2 -1
- package/dist/global-skills/firebase-firestore/SKILL.md +20 -8
- package/dist/global-skills/firebase-firestore/references/enterprise/android_sdk_usage.md +5 -4
- package/dist/global-skills/firebase-firestore/references/enterprise/data_model.md +12 -3
- package/dist/global-skills/firebase-firestore/references/enterprise/indexes.md +16 -18
- package/dist/global-skills/firebase-firestore/references/enterprise/provisioning.md +1 -1
- package/dist/global-skills/firebase-firestore/references/enterprise/python_sdk_usage.md +5 -1
- package/dist/global-skills/firebase-firestore/references/enterprise/web_sdk_usage.md +7 -7
- package/dist/global-skills/firebase-firestore/references/standard/android_sdk_usage.md +5 -5
- package/dist/global-skills/firebase-firestore/references/standard/flutter_setup.md +4 -4
- package/dist/global-skills/firebase-firestore/references/standard/indexes.md +16 -18
- package/dist/global-skills/firebase-firestore/references/standard/provisioning.md +1 -1
- package/dist/global-skills/firebase-remote-config-basics/SKILL.md +0 -5
- package/dist/global-skills/firebase-remote-config-basics/references/android_setup.md +36 -8
- package/dist/global-skills/firebase-remote-config-basics/references/ios_setup.md +1 -7
- package/dist/global-skills/firebase-security-rules-auditor/SKILL.md +17 -6
- package/dist/global-skills/{firebase-firestore/references/standard/security_rules.md → firestore-rules-creation/SKILL.md} +24 -13
- package/dist/global-skills/grow-my-customers/SKILL.md +23 -0
- package/dist/global-skills/instrument-feature-flags/SKILL.md +25 -25
- package/dist/global-skills/instrument-feature-flags/references/adding-feature-flag-code.md +141 -285
- package/dist/global-skills/instrument-feature-flags/references/android.md +6 -15
- package/dist/global-skills/instrument-feature-flags/references/api.md +4 -11
- package/dist/global-skills/instrument-feature-flags/references/best-practices.md +1 -13
- package/dist/global-skills/instrument-feature-flags/references/django.md +14 -27
- package/dist/global-skills/instrument-feature-flags/references/dotnet.md +20 -79
- package/dist/global-skills/instrument-feature-flags/references/elixir.md +1 -9
- package/dist/global-skills/instrument-feature-flags/references/flask.md +13 -13
- package/dist/global-skills/instrument-feature-flags/references/flutter.md +3 -24
- package/dist/global-skills/instrument-feature-flags/references/go.md +3 -15
- package/dist/global-skills/instrument-feature-flags/references/ios.md +4 -17
- package/dist/global-skills/instrument-feature-flags/references/java.md +5 -13
- package/dist/global-skills/instrument-feature-flags/references/laravel.md +13 -17
- package/dist/global-skills/instrument-feature-flags/references/next-js.md +25 -32
- package/dist/global-skills/instrument-feature-flags/references/nodejs.md +8 -15
- package/dist/global-skills/instrument-feature-flags/references/php.md +1 -15
- package/dist/global-skills/instrument-feature-flags/references/python.md +2 -15
- package/dist/global-skills/instrument-feature-flags/references/react-native.md +13 -15
- package/dist/global-skills/instrument-feature-flags/references/react.md +17 -21
- package/dist/global-skills/instrument-feature-flags/references/ruby-on-rails.md +37 -83
- package/dist/global-skills/instrument-feature-flags/references/ruby.md +2 -15
- package/dist/global-skills/instrument-feature-flags/references/rust.md +13 -25
- package/dist/global-skills/instrument-feature-flags/references/usage.md +14 -63
- package/dist/global-skills/instrument-feature-flags/references/web.md +9 -14
- package/dist/global-skills/instrument-product-analytics/SKILL.md +29 -29
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-hybrid.md +3 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-ssr.md +3 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-static.md +3 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-astro-view-transitions.md +3 -1
- package/dist/global-skills/instrument-product-analytics/references/EXAMPLE-ruby-on-rails.md +3 -1
- package/dist/global-skills/instrument-product-analytics/references/android.md +72 -107
- package/dist/global-skills/instrument-product-analytics/references/angular.md +26 -28
- package/dist/global-skills/instrument-product-analytics/references/astro.md +13 -24
- package/dist/global-skills/instrument-product-analytics/references/configuration.md +45 -63
- package/dist/global-skills/instrument-product-analytics/references/django.md +14 -27
- package/dist/global-skills/instrument-product-analytics/references/dotnet.md +20 -79
- package/dist/global-skills/instrument-product-analytics/references/elixir.md +47 -49
- package/dist/global-skills/instrument-product-analytics/references/flask.md +13 -13
- package/dist/global-skills/instrument-product-analytics/references/flutter.md +60 -90
- package/dist/global-skills/instrument-product-analytics/references/go.md +17 -56
- package/dist/global-skills/instrument-product-analytics/references/identify-users.md +15 -15
- package/dist/global-skills/instrument-product-analytics/references/ios.md +11 -15
- package/dist/global-skills/instrument-product-analytics/references/laravel.md +13 -17
- package/dist/global-skills/instrument-product-analytics/references/next-js.md +25 -32
- package/dist/global-skills/instrument-product-analytics/references/nuxt-js-3-6.md +13 -27
- package/dist/global-skills/instrument-product-analytics/references/nuxt-js.md +14 -28
- package/dist/global-skills/instrument-product-analytics/references/php.md +33 -84
- package/dist/global-skills/instrument-product-analytics/references/posthog-python.md +229 -9
- package/dist/global-skills/instrument-product-analytics/references/python.md +415 -106
- package/dist/global-skills/instrument-product-analytics/references/react-native.md +161 -155
- package/dist/global-skills/instrument-product-analytics/references/react-router-v6.md +12 -33
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-data-mode.md +15 -33
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-declarative-mode.md +12 -33
- package/dist/global-skills/instrument-product-analytics/references/react-router-v7-framework-mode.md +26 -41
- package/dist/global-skills/instrument-product-analytics/references/ruby-on-rails.md +37 -83
- package/dist/global-skills/instrument-product-analytics/references/ruby.md +48 -108
- package/dist/global-skills/instrument-product-analytics/references/svelte.md +18 -24
- package/dist/global-skills/instrument-product-analytics/references/tanstack-start.md +17 -19
- package/dist/global-skills/instrument-product-analytics/references/usage.md +14 -63
- package/dist/global-skills/instrument-product-analytics/references/vue-js.md +29 -28
- package/dist/global-skills/manifest.json +8 -2
- package/dist/global-skills/mongodb-search-and-ai/SKILL.md +28 -37
- package/dist/global-skills/mongodb-search-and-ai/references/automated-embedding.md +438 -0
- package/dist/global-skills/mongodb-search-and-ai/references/hybrid-search.md +60 -4
- package/dist/global-skills/mongodb-search-and-ai/references/vector-search.md +46 -108
- package/dist/global-skills/neon/SKILL.md +207 -213
- package/dist/global-skills/neon/references/auth.md +12 -0
- package/dist/global-skills/neon/references/claimable-neon.md +10 -14
- package/dist/global-skills/neon/references/function-triggers.md +53 -0
- package/dist/global-skills/neon/references/logs-loki.md +61 -0
- package/dist/global-skills/neon/references/parse-env.md +32 -0
- package/dist/global-skills/neon/references/sdk.md +7 -0
- package/dist/global-skills/neon-ai-gateway/SKILL.md +14 -16
- package/dist/global-skills/neon-auth/SKILL.md +155 -0
- package/dist/global-skills/neon-auth/references/managed-auth.md +173 -0
- package/dist/global-skills/neon-auth/references/self-managed.md +25 -0
- package/dist/global-skills/neon-functions/SKILL.md +159 -84
- package/dist/global-skills/neon-functions/references/ai-sdk.md +4 -6
- package/dist/global-skills/neon-functions/references/function-triggers.md +249 -0
- package/dist/global-skills/neon-functions/references/mastra-studio.md +3 -3
- package/dist/global-skills/neon-functions/references/mcp.md +1 -1
- package/dist/global-skills/neon-functions/references/production-hardening.md +340 -0
- package/dist/global-skills/neon-functions/references/sse.md +8 -5
- package/dist/global-skills/neon-object-storage/SKILL.md +10 -11
- package/dist/global-skills/neon-postgres/SKILL.md +120 -17
- package/dist/global-skills/neon-postgres/references/full-text-search.md +99 -0
- package/dist/global-skills/neon-postgres/references/hybrid-search.md +90 -0
- package/dist/global-skills/neon-postgres/references/lakebase-search-drizzle.md +172 -0
- package/dist/global-skills/neon-postgres/references/vector-search.md +137 -0
- package/dist/global-skills/neon-postgres-branches/SKILL.md +3 -3
- package/dist/global-skills/neon-postgres-egress-optimizer/SKILL.md +1 -1
- package/dist/global-skills/onboarding/SKILL.md +8 -6
- package/dist/global-skills/resend/SKILL.md +4 -2
- package/dist/global-skills/resend/references/broadcasts.md +6 -1
- package/dist/global-skills/resend/references/receiving.md +29 -10
- package/dist/global-skills/resend/references/sending/email-management.md +14 -4
- package/dist/global-skills/resend/references/topics.md +9 -6
- package/dist/global-skills/resend/references/usage.md +117 -0
- package/dist/global-skills/resend/references/webhooks.md +59 -2
- package/dist/global-skills/stripe-best-practices/SKILL.md +35 -29
- package/dist/global-skills/stripe-best-practices/references/billing.md +9 -2
- package/dist/global-skills/stripe-best-practices/references/payments.md +4 -2
- package/dist/global-skills/stripe-best-practices/references/security.md +3 -1
- package/dist/global-skills/stripe-best-practices/references/tax.md +39 -20
- package/dist/global-skills/supabase/SKILL.md +6 -0
- package/dist/global-skills/use-railway/SKILL.md +42 -22
- package/dist/global-skills/use-railway/references/analyze-db.md +7 -6
- package/dist/global-skills/use-railway/references/cloud-agents.md +70 -0
- package/dist/global-skills/use-railway/references/configure.md +17 -2
- package/dist/global-skills/use-railway/references/databases.md +107 -0
- package/dist/global-skills/use-railway/references/deploy.md +5 -5
- package/dist/global-skills/use-railway/references/feature-flags.md +25 -13
- package/dist/global-skills/use-railway/references/iac.md +66 -77
- package/dist/global-skills/use-railway/references/operate.md +26 -3
- package/dist/global-skills/use-railway/references/request.md +31 -23
- package/dist/global-skills/use-railway/references/setup.md +16 -5
- package/dist/global-skills/use-railway/references/tracing.md +261 -0
- package/dist/global-skills/use-railway/references/usage.md +52 -0
- package/dist/global-skills/validate-my-idea/SKILL.md +54 -0
- package/dist/global-skills/{feedback → vybekiit-feedback}/SKILL.md +16 -12
- package/dist/global-skills/watch-my-app/SKILL.md +53 -0
- package/dist/global-skills/workers-best-practices/SKILL.md +36 -103
- package/dist/global-skills/workers-best-practices/references/configuration.md +139 -0
- package/dist/global-skills/workers-best-practices/references/platform-apis.md +51 -0
- package/dist/global-skills/workers-best-practices/references/{rules.md → runtime-patterns.md} +13 -137
- package/dist/global-skills/wrangler/SKILL.md +48 -901
- package/dist/global-skills/xcode-project-setup/scripts/xcode_spm_setup/Sources/main.swift +19 -15
- package/package.json +9 -8
- package/dist/global-skills/expo-native-ui/references/animations.md +0 -220
- package/dist/global-skills/firebase-firestore/references/enterprise/security_rules.md +0 -577
- package/dist/global-skills/workers-best-practices/references/review.md +0 -174
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
# Hybrid Search
|
|
2
2
|
|
|
3
|
-
This guide covers hybrid search patterns in MongoDB Atlas: combining vector and lexical search using `$rankFusion` and `$scoreFusion`, and using lexical prefilters with the `vectorSearch` operator inside `$search`.
|
|
4
|
-
|
|
5
|
-
**Scope**: This guide covers hybrid pipelines. For pure vector search indexes and `$vectorSearch` query construction, see vector-search.md. For lexical index definitions and query patterns, see lexical-search-indexing.md and lexical-search-querying.md.
|
|
3
|
+
**Scope**: This guide covers hybrid search patterns in MongoDB Atlas: combining vector and lexical search using `$rankFusion` and `$scoreFusion`, and using lexical prefilters with the `vectorSearch` operator inside `$search`. For pure vector search indexes and `$vectorSearch` query construction, see `vector-search.md`. For lexical index definitions and query patterns, see `lexical-search-indexing.md` and `lexical-search-querying.md`. For automated embedding (`autoEmbed`) index and query syntax used inside a hybrid pipeline, see `automated-embedding.md`.
|
|
6
4
|
|
|
7
5
|
## Table of Contents
|
|
8
6
|
|
|
@@ -44,8 +42,9 @@ Hybrid search combines multiple search methods on the same collection and merges
|
|
|
44
42
|
| Pre-filter vector search with fuzzy, phrase, wildcard, or compound | `$search` + `vectorSearch` operator |
|
|
45
43
|
| Pre-filter vector search with simple equality or range | `filter` fields in `$vectorSearch` (see vector-search.md) |
|
|
46
44
|
| Cross-collection hybrid search | `$unionWith` + `$vectorSearch` (not `$rankFusion`/`$scoreFusion`) |
|
|
45
|
+
| Combine lexical + semantic search without writing embedding code | `$rankFusion` or `$scoreFusion` with an `autoEmbed`-type `$vectorSearch` pipeline (see automated-embedding.md) |
|
|
47
46
|
|
|
48
|
-
**Version requirements**: `$rankFusion` requires MongoDB 8.0+. `$scoreFusion` requires MongoDB 8.
|
|
47
|
+
**Version requirements**: `$rankFusion` requires MongoDB 8.0+. `$scoreFusion` requires MongoDB 8.3+. Only proceed with this guide if the use case is lexical prefilters, or if the cluster meets the version requirement for the fusion stage of interest. Otherwise do not proceed — inform the user the feature is unavailable and suggest upgrading, and offer to help them build the individual lexical or vector search components separately in the meantime.
|
|
49
48
|
|
|
50
49
|
---
|
|
51
50
|
|
|
@@ -83,6 +82,8 @@ db.collection.createSearchIndex(
|
|
|
83
82
|
)
|
|
84
83
|
```
|
|
85
84
|
|
|
85
|
+
**Using automated embedding instead:** If you want MongoDB to generate and manage the embeddings rather than supplying your own, create an `autoEmbed`-type vectorSearch index instead of the `vector`-type index shown above. See `automated-embedding.md` for the index definition and query syntax — the fusion-stage rules below apply the same way regardless of which index type backs the vector pipeline.
|
|
86
|
+
|
|
86
87
|
---
|
|
87
88
|
|
|
88
89
|
### For Lexical Prefilters (vectorSearch Operator)
|
|
@@ -317,6 +318,57 @@ db.embedded_movies.aggregate([
|
|
|
317
318
|
|
|
318
319
|
---
|
|
319
320
|
|
|
321
|
+
### Example 4: Automated Embedding (autoEmbed) + Lexical Search
|
|
322
|
+
|
|
323
|
+
If the vector pipeline targets an `autoEmbed`-type index, pass plain text via `query` instead of a numeric array via `queryVector` — MongoDB generates the embedding automatically:
|
|
324
|
+
|
|
325
|
+
```javascript
|
|
326
|
+
db.movies.aggregate([
|
|
327
|
+
{
|
|
328
|
+
$rankFusion: {
|
|
329
|
+
input: {
|
|
330
|
+
pipelines: {
|
|
331
|
+
semanticPipeline: [
|
|
332
|
+
{
|
|
333
|
+
$vectorSearch: {
|
|
334
|
+
index: "<autoembed-index-name>",
|
|
335
|
+
path: "<text-field>",
|
|
336
|
+
query: "<query-text>", // Plain text — no embedding vector needed
|
|
337
|
+
numCandidates: 100,
|
|
338
|
+
limit: 20
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
],
|
|
342
|
+
textPipeline: [
|
|
343
|
+
{
|
|
344
|
+
$search: {
|
|
345
|
+
index: "<search-index-name>",
|
|
346
|
+
text: {
|
|
347
|
+
query: "<query-term>",
|
|
348
|
+
path: "<text-field>"
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
},
|
|
352
|
+
{ $limit: 20 }
|
|
353
|
+
]
|
|
354
|
+
}
|
|
355
|
+
},
|
|
356
|
+
combination: {
|
|
357
|
+
weights: {
|
|
358
|
+
semanticPipeline: 0.7,
|
|
359
|
+
textPipeline: 0.3
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
},
|
|
364
|
+
{ $limit: 10 }
|
|
365
|
+
])
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
The only difference from Example 2 is the vector pipeline's `query` field: it takes a text string instead of a `queryVector` array. Weighting, the `$limit` inside `$search`, and RRF scoring all work identically. See `automated-embedding.md` for model selection and index setup.
|
|
369
|
+
|
|
370
|
+
---
|
|
371
|
+
|
|
320
372
|
### Surfacing scoreDetails
|
|
321
373
|
|
|
322
374
|
Set `scoreDetails: true` on the stage, then project via `$meta: "scoreDetails"`. The output includes a `value` (final RRF score), `description`, and a `details` array — one entry per input pipeline — containing `inputPipelineName`, `rank`, `weight`, and optionally `value` (raw pipeline score). See the `$scoreFusion` scoreDetails section below for a concrete structure example; `$rankFusion` follows the same pattern with `rank` instead of `inputPipelineRawScore`.
|
|
@@ -493,6 +545,10 @@ db.embedded_movies.aggregate([
|
|
|
493
545
|
|
|
494
546
|
---
|
|
495
547
|
|
|
548
|
+
**Using autoEmbed pipelines:** As with `$rankFusion`, pass `query` (text) instead of `queryVector` (array) in the `$vectorSearch` stage when it targets an `autoEmbed`-type index — see [Example 4 under $rankFusion](#example-4-automated-embedding-autoembed--lexical-search) and `automated-embedding.md` for the full syntax.
|
|
549
|
+
|
|
550
|
+
---
|
|
551
|
+
|
|
496
552
|
### Surfacing scoreDetails
|
|
497
553
|
|
|
498
554
|
Set `scoreDetails: true`, then use `$meta: "scoreDetails"` in `$project`, `$addFields`, or `$set`:
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
# Vector Search - Indexing and Querying
|
|
2
2
|
|
|
3
|
-
This guide covers
|
|
4
|
-
|
|
5
|
-
**Scope**: This guide covers pure vector search indexes. For hybrid search (combining lexical and vector search), see hybrid-search.md.
|
|
3
|
+
**Scope**: This guide covers configuring MongoDB Vector Search indexes and constructing queries for semantic similarity search where the user **brings their own pre-generated embeddings**. For hybrid search (combining lexical and vector search), see `hybrid-search.md`. If the user wants MongoDB to generate and manage embeddings automatically (no embedding code), see `automated-embedding.md` instead.
|
|
6
4
|
|
|
7
5
|
## Table of Contents
|
|
8
6
|
|
|
9
7
|
- [Vector Search Index Definition](#vector-search-index-definition)
|
|
10
8
|
- [Index Configuration Parameters](#index-configuration-parameters)
|
|
11
|
-
- [Filter Fields
|
|
9
|
+
- [Filter Fields](#filter-fields)
|
|
12
10
|
- [Query Construction](#query-construction)
|
|
13
11
|
- [Query Optimization](#query-optimization)
|
|
14
12
|
|
|
@@ -149,9 +147,7 @@ Most vector search indexes only need the vector field:
|
|
|
149
147
|
"path": "plot_embedding",
|
|
150
148
|
"numDimensions": 1536,
|
|
151
149
|
"similarity": "cosine",
|
|
152
|
-
"quantization":
|
|
153
|
-
"type": "scalar"
|
|
154
|
-
}
|
|
150
|
+
"quantization": "scalar"
|
|
155
151
|
}
|
|
156
152
|
```
|
|
157
153
|
|
|
@@ -197,17 +193,20 @@ Most vector search indexes only need the vector field:
|
|
|
197
193
|
|
|
198
194
|
---
|
|
199
195
|
|
|
200
|
-
## Filter Fields
|
|
196
|
+
## Filter Fields
|
|
201
197
|
|
|
202
|
-
|
|
198
|
+
**Performance**: Filtering before similarity computation is much faster than post-filtering with `$match`.
|
|
203
199
|
|
|
204
|
-
**
|
|
200
|
+
**Recommendation**: Use pre-filtering whenever possible for best performance. Reserve post-filtering for complex or ad-hoc queries.
|
|
205
201
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
**Performance**: Filtering before similarity computation is much faster than post-filtering with `$match`.
|
|
202
|
+
### Important Notes for Pre-filtering
|
|
209
203
|
|
|
204
|
+
**Definition**: Additional fields indexed to enable pre-filtering before vector similarity computation. This narrows the search scope and improves performance.
|
|
205
|
+
**Use Case**: You have multi-tenant data that needs isolation or you need to filter by specific criteria (e.g., category, date range, user ID), by exact values (category = "Action"), or by range (year >= 2020) BEFORE computing vector similarity.
|
|
210
206
|
**Supported Field Types**: boolean, date, objectId, numeric (int32, int64, double), string, UUID, and arrays of these types.
|
|
207
|
+
**Requirements**: You must add fields as type "filter" in your index definition to use them in the filter option. Fields not indexed cannot be used for pre-filtering.
|
|
208
|
+
**Supported Filter Operators**: $eq, $ne, $gt, $lt, $gte, $lte, $in, $nin, $exists, $and, $or, $not, $nor
|
|
209
|
+
**Pre-filtering does NOT affect scores**: The vectorSearchScore returned for documents is based only on vector similarity, not on how well they matched the filter criteria.
|
|
211
210
|
|
|
212
211
|
---
|
|
213
212
|
|
|
@@ -236,40 +235,7 @@ Most vector search indexes only need the vector field:
|
|
|
236
235
|
|
|
237
236
|
---
|
|
238
237
|
|
|
239
|
-
###
|
|
240
|
-
|
|
241
|
-
**Use filter fields when**:
|
|
242
|
-
- You need to filter by exact values (category = "Action")
|
|
243
|
-
- You need range filtering (year >= 2020)
|
|
244
|
-
- Filter criteria are known at query time
|
|
245
|
-
- You want maximum query performance (filters before computing similarity)
|
|
246
|
-
- You have multi-tenant data that needs isolation
|
|
247
|
-
|
|
248
|
-
**Use post-filtering ($match) when**:
|
|
249
|
-
- Filters are ad-hoc and change frequently
|
|
250
|
-
- Complex aggregation logic is needed
|
|
251
|
-
- Fields are not worth indexing (rarely used)
|
|
252
|
-
- Combining with other aggregation stages
|
|
253
|
-
|
|
254
|
-
---
|
|
255
|
-
|
|
256
|
-
### Supported Filter Operators
|
|
257
|
-
|
|
258
|
-
MongoDB Vector Search supports the following MQL operators in the `filter` option:
|
|
259
|
-
|
|
260
|
-
| Type | Operators |
|
|
261
|
-
|------|-----------|
|
|
262
|
-
| Equality | `$eq`, `$ne` |
|
|
263
|
-
| Range | `$gt`, `$lt`, `$gte`, `$lte` |
|
|
264
|
-
| In set | `$in`, `$nin` |
|
|
265
|
-
| Existence | `$exists` |
|
|
266
|
-
| Logical | `$not`, `$nor`, `$and`, `$or` |
|
|
267
|
-
|
|
268
|
-
**Note**: Other query operators, aggregation pipeline operators, and MongoDB Search operators are NOT supported in the filter option.
|
|
269
|
-
|
|
270
|
-
---
|
|
271
|
-
|
|
272
|
-
### Filter Examples
|
|
238
|
+
### Pre-Filter Examples
|
|
273
239
|
|
|
274
240
|
**Index with filter fields**:
|
|
275
241
|
```javascript
|
|
@@ -344,13 +310,41 @@ MongoDB Vector Search supports the following MQL operators in the `filter` optio
|
|
|
344
310
|
|
|
345
311
|
---
|
|
346
312
|
|
|
347
|
-
### Important Notes
|
|
313
|
+
### Important Notes for Post-Filtering
|
|
348
314
|
|
|
349
|
-
**
|
|
315
|
+
**Definition**: Filtering after vector similarity computation.
|
|
316
|
+
**Use Case**: Use post-filtering when you need to filter by criteria that are not known until query time, or when you need to combine vector search with other aggregation stages. No need to index fields.
|
|
317
|
+
**Advantages**: More flexible, can combine with other aggregation stages, no need to index fields.
|
|
318
|
+
**Performance**: Slower than pre-filtering, computes similarity for all candidates first.
|
|
350
319
|
|
|
351
|
-
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
### Post-Filter Examples
|
|
323
|
+
|
|
324
|
+
**Post-filtering with $match**
|
|
352
325
|
|
|
353
|
-
|
|
326
|
+
For ad-hoc filters or complex logic not indexed as filter fields, use `$match` after `$vectorSearch`:
|
|
327
|
+
|
|
328
|
+
```javascript
|
|
329
|
+
db.collection.aggregate([
|
|
330
|
+
{
|
|
331
|
+
$vectorSearch: {
|
|
332
|
+
index: "vector_index",
|
|
333
|
+
path: "plot_embedding",
|
|
334
|
+
queryVector: [<array>],
|
|
335
|
+
numCandidates: 150,
|
|
336
|
+
limit: 50 // Get more candidates for post-filtering
|
|
337
|
+
}
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
$match: {
|
|
341
|
+
category: "Electronics",
|
|
342
|
+
"reviews.rating": { $gte: 4.5 } // Complex nested field
|
|
343
|
+
}
|
|
344
|
+
},
|
|
345
|
+
{ $limit: 10 }
|
|
346
|
+
])
|
|
347
|
+
```
|
|
354
348
|
|
|
355
349
|
---
|
|
356
350
|
|
|
@@ -435,11 +429,7 @@ MongoDB Vector Search supports the following MQL operators in the `filter` optio
|
|
|
435
429
|
|
|
436
430
|
### Optional Fields
|
|
437
431
|
|
|
438
|
-
**filter** (Object, Optional):
|
|
439
|
-
- MQL expression to pre-filter documents before vector search
|
|
440
|
-
- Only works with fields indexed as type "filter"
|
|
441
|
-
- Supported operators: $eq, $ne, $gt, $lt, $gte, $lte, $in, $nin, $exists, $and, $or, $not, $nor
|
|
442
|
-
- See Filter Fields section for details and examples
|
|
432
|
+
**filter** (Object, Optional): See Filter Fields section for details and examples
|
|
443
433
|
|
|
444
434
|
**exact** (Boolean, Optional):
|
|
445
435
|
- Set to `true` for ENN (Exact Nearest Neighbor) search
|
|
@@ -546,38 +536,6 @@ Use `$meta: "vectorSearchScore"` in a `$project` stage to include similarity sco
|
|
|
546
536
|
**Important**:
|
|
547
537
|
- Scores are in range [0, 1] where 1 = most similar
|
|
548
538
|
- You can ONLY use `vectorSearchScore` after a `$vectorSearch` stage
|
|
549
|
-
- Pre-filtering does NOT affect the score (only vector similarity affects score)
|
|
550
|
-
|
|
551
|
-
---
|
|
552
|
-
|
|
553
|
-
### Post-filtering with $match
|
|
554
|
-
|
|
555
|
-
For ad-hoc filters or complex logic not indexed as filter fields, use `$match` after `$vectorSearch`:
|
|
556
|
-
|
|
557
|
-
```javascript
|
|
558
|
-
db.collection.aggregate([
|
|
559
|
-
{
|
|
560
|
-
$vectorSearch: {
|
|
561
|
-
index: "vector_index",
|
|
562
|
-
path: "plot_embedding",
|
|
563
|
-
queryVector: [<array>],
|
|
564
|
-
numCandidates: 150,
|
|
565
|
-
limit: 50 // Get more candidates for post-filtering
|
|
566
|
-
}
|
|
567
|
-
},
|
|
568
|
-
{
|
|
569
|
-
$match: {
|
|
570
|
-
category: "Electronics",
|
|
571
|
-
"reviews.rating": { $gte: 4.5 } // Complex nested field
|
|
572
|
-
}
|
|
573
|
-
},
|
|
574
|
-
{ $limit: 10 }
|
|
575
|
-
])
|
|
576
|
-
```
|
|
577
|
-
|
|
578
|
-
**Performance Note**: Post-filtering is slower than pre-filtering because it computes similarity for all candidates first.
|
|
579
|
-
|
|
580
|
-
---
|
|
581
539
|
|
|
582
540
|
## Query Optimization
|
|
583
541
|
|
|
@@ -653,26 +611,6 @@ db.collection.aggregate([
|
|
|
653
611
|
- Very selective filters (less than 5% of data matches)
|
|
654
612
|
- You need guaranteed best matches
|
|
655
613
|
|
|
656
|
-
---
|
|
657
|
-
|
|
658
|
-
### Pre-filtering vs Post-filtering Performance
|
|
659
|
-
|
|
660
|
-
**Pre-filtering (filter option)**:
|
|
661
|
-
- Fastest: Filters BEFORE computing similarity
|
|
662
|
-
- Use for exact matches, range queries, known criteria
|
|
663
|
-
- Requires fields indexed as type "filter"
|
|
664
|
-
- Limited to supported MQL operators ($eq, $ne, $gt, $lt, $gte, $lte, $in, $nin, $exists, $and, $or, $not, $nor)
|
|
665
|
-
|
|
666
|
-
**Post-filtering ($match stage)**:
|
|
667
|
-
- Slower: Computes similarity for all candidates first
|
|
668
|
-
- Use for ad-hoc filters, complex logic, unindexed fields
|
|
669
|
-
- Full MQL operator support
|
|
670
|
-
- Can combine with other aggregation stages
|
|
671
|
-
|
|
672
|
-
**Recommendation**: Use pre-filtering whenever possible for best performance. Reserve post-filtering for complex or ad-hoc queries.
|
|
673
|
-
|
|
674
|
-
---
|
|
675
|
-
|
|
676
614
|
### Parallel Query Execution
|
|
677
615
|
|
|
678
616
|
MongoDB Vector Search parallelizes query execution across segments when running on dedicated search nodes, which can improve response time for queries on large datasets.
|