# Wrangler Vectorize Commands Reference Complete CLI reference for managing Cloudflare Vectorize indexes with Wrangler. **Minimum Version Required**: Wrangler 3.71.0+ ## Index Management ### create Create a new Vectorize index. **⚠️ CRITICAL**: Dimensions and metric cannot be changed after creation! ```bash npx wrangler vectorize create \ --dimensions= \ --metric= \ [--description=] ``` **Parameters**: - `INDEX_NAME` (required): Name of the index (lowercase, alphanumeric, dashes, max 32 chars) - `--dimensions` (required): Vector width (768 for Workers AI bge-base, 1536 for OpenAI small, 3072 for OpenAI large) - `--metric` (required): Distance metric (`cosine`, `euclidean`, or `dot-product`) - `--description` (optional): Human-readable description **Examples**: ```bash # Workers AI @cf/baai/bge-base-en-v1.5 (768 dimensions) npx wrangler vectorize create docs-search \ --dimensions=768 \ --metric=cosine \ --description="Documentation semantic search" # OpenAI text-embedding-3-small (1536 dimensions) npx wrangler vectorize create product-recs \ --dimensions=1536 \ --metric=cosine # OpenAI text-embedding-3-large (3072 dimensions) npx wrangler vectorize create high-accuracy-index \ --dimensions=3072 \ --metric=euclidean ``` ### list List all Vectorize indexes in your account. ```bash npx wrangler vectorize list ``` **Output**: Table with index names, dimensions, and distance metrics. ### get Get details about a specific index. ```bash npx wrangler vectorize get ``` **Returns**: Index configuration (name, dimensions, metric, description). ### info Get additional information about an index. ```bash npx wrangler vectorize info ``` **Returns**: Vector count, last processed mutation, index status. ### delete Delete a Vectorize index (irreversible!). ```bash npx wrangler vectorize delete [--force] ``` **Parameters**: - `--force` (optional): Skip confirmation prompt **Example**: ```bash npx wrangler vectorize delete old-index --force ``` ## Metadata Indexes **⚠️ CRITICAL**: Create metadata indexes BEFORE inserting vectors! Vectors added before a metadata index exists won't be filterable on that property. ### create-metadata-index Enable metadata filtering on a specific property. ```bash npx wrangler vectorize create-metadata-index \ --property-name= \ --type= ``` **Parameters**: - `INDEX_NAME` (required): Vectorize index name - `--property-name` (required): Metadata field name - `--type` (required): Data type (`string`, `number`, or `boolean`) **Limits**: - Max 10 metadata indexes per Vectorize index - String indexes: First 64 bytes (UTF-8) - Number indexes: Float64 precision **Examples**: ```bash # String metadata (category filtering) npx wrangler vectorize create-metadata-index docs-search \ --property-name=category \ --type=string # Number metadata (timestamp filtering) npx wrangler vectorize create-metadata-index docs-search \ --property-name=published_at \ --type=number # Boolean metadata (published status) npx wrangler vectorize create-metadata-index docs-search \ --property-name=published \ --type=boolean # Nested metadata (use dot notation) npx wrangler vectorize create-metadata-index docs-search \ --property-name=author_verified \ --type=boolean ``` ### list-metadata-index List all metadata indexes for an index. ```bash npx wrangler vectorize list-metadata-index ``` **Output**: Table with property names and types. ### delete-metadata-index Disable metadata filtering on a property. ```bash npx wrangler vectorize delete-metadata-index \ --property-name= ``` **Example**: ```bash npx wrangler vectorize delete-metadata-index docs-search \ --property-name=category ``` ## Vector Operations ### insert Insert vectors from a file (NDJSON format). ```bash npx wrangler vectorize insert \ --file= ``` **File Format** (NDJSON - one JSON object per line): ```json {"id":"1","values":[0.1,0.2,0.3],"metadata":{"title":"Doc 1"}} {"id":"2","values":[0.4,0.5,0.6],"metadata":{"title":"Doc 2"}} ``` **Example**: ```bash npx wrangler vectorize insert docs-search --file=vectors.ndjson ``` ### query Query vectors directly from CLI. ```bash npx wrangler vectorize query \ --vector="[]" \ [--top-k=] \ [--return-metadata=] \ [--namespace=] \ [--filter=] ``` **Parameters**: - `--vector` (required): Query vector as JSON array - `--top-k` (optional): Number of results (default: 10) - `--return-metadata` (optional): `none`, `indexed`, or `all` (default: `none`) - `--namespace` (optional): Query specific namespace - `--filter` (optional): Metadata filter as JSON string **Examples**: ```bash # Simple query npx wrangler vectorize query docs-search \ --vector="[0.1,0.2,0.3,...]" \ --top-k=5 \ --return-metadata=all # Query with filter npx wrangler vectorize query docs-search \ --vector="[0.1,0.2,...]" \ --filter='{"category":"documentation","published":true}' \ --top-k=3 # Query specific namespace npx wrangler vectorize query docs-search \ --vector="[0.1,0.2,...]" \ --namespace="customer-123" \ --top-k=5 ``` ### list-vectors List vector IDs in paginated manner. ```bash npx wrangler vectorize list-vectors \ [--count=] \ [--cursor=] ``` **Parameters**: - `--count` (optional): Vectors per page (1-1000, default: 100) - `--cursor` (optional): Pagination cursor from previous response **Example**: ```bash # Get first 100 vector IDs npx wrangler vectorize list-vectors docs-search --count=100 # Get next page (use cursor from previous response) npx wrangler vectorize list-vectors docs-search \ --count=100 \ --cursor="abc123..." ``` ### get-vectors Fetch specific vectors by ID. ```bash npx wrangler vectorize get-vectors \ --ids= ``` **Example**: ```bash npx wrangler vectorize get-vectors docs-search \ --ids="doc-1,doc-2,doc-3" ``` ### delete-vectors Delete vectors by ID. ```bash npx wrangler vectorize delete-vectors \ --ids= ``` **Example**: ```bash npx wrangler vectorize delete-vectors docs-search \ --ids="old-doc-1,old-doc-2" ``` ## Common Workflows ### Initial Setup ```bash # 1. Create index npx wrangler vectorize create my-index \ --dimensions=768 \ --metric=cosine # 2. Create metadata indexes (BEFORE inserting!) npx wrangler vectorize create-metadata-index my-index \ --property-name=category --type=string npx wrangler vectorize create-metadata-index my-index \ --property-name=timestamp --type=number # 3. Verify metadata indexes npx wrangler vectorize list-metadata-index my-index # 4. Now safe to insert vectors (via Worker or CLI) ``` ### Bulk Data Import ```bash # Prepare NDJSON file cat > vectors.ndjson << 'EOF' {"id":"doc-1","values":[0.1,0.2,0.3,...],"metadata":{"category":"docs"}} {"id":"doc-2","values":[0.4,0.5,0.6,...],"metadata":{"category":"tutorials"}} EOF # Import npx wrangler vectorize insert my-index --file=vectors.ndjson # Verify npx wrangler vectorize info my-index ``` ### Debug / Inspect ```bash # Check index configuration npx wrangler vectorize get my-index # Check vector count npx wrangler vectorize info my-index # List some vector IDs npx wrangler vectorize list-vectors my-index --count=10 # Inspect specific vectors npx wrangler vectorize get-vectors my-index --ids="doc-1,doc-2" # Test query npx wrangler vectorize query my-index \ --vector="[0.1,0.2,...]" \ --top-k=3 \ --return-metadata=all ``` ### Cleanup ```bash # Delete specific vectors npx wrangler vectorize delete-vectors my-index --ids="doc-1,doc-2" # Delete entire index (irreversible!) npx wrangler vectorize delete my-index --force ``` ## Tips & Best Practices 1. **Always use latest Wrangler**: `npx wrangler@latest vectorize ...` 2. **Create metadata indexes first**: Before any vector insertion 3. **Test with small data**: Use `--count=10` when listing/testing 4. **Batch operations**: Use Workers for bulk operations (faster than CLI) 5. **Monitor vector count**: Use `info` command to track index size 6. **Verify before delete**: Always check with `get` before `delete` ## Error Messages | Error | Cause | Solution | |-------|-------|----------| | "Wrangler version 3.71.0 required" | Old Wrangler | Update: `npm install -g wrangler@latest` | | "Vector dimensions do not match" | Wrong embedding size | Check model output dimensions | | "Metadata property not indexed" | Metadata index missing | Create metadata index before querying | | "Index name already exists" | Duplicate name | Use different name or delete old index | | "Invalid filter syntax" | Malformed JSON filter | Check JSON syntax and operators | ## See Also - [Index Operations](./index-operations.md) - [Vector Operations](./vector-operations.md) - [Metadata Guide](./metadata-guide.md) - [Official Wrangler Docs](https://developers.cloudflare.com/workers/wrangler/commands/#vectorize)