https://github.com/typesense/typesense-collection-schema-generator
A CLI utility to generate a first-draft Typesense Collection schema given a JSON sample object
https://github.com/typesense/typesense-collection-schema-generator
typesense
Last synced: about 2 months ago
JSON representation
A CLI utility to generate a first-draft Typesense Collection schema given a JSON sample object
- Host: GitHub
- URL: https://github.com/typesense/typesense-collection-schema-generator
- Owner: typesense
- Created: 2024-02-05T21:21:14.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-02-05T21:34:27.000Z (over 1 year ago)
- Last Synced: 2025-04-13T04:04:04.685Z (6 months ago)
- Topics: typesense
- Language: JavaScript
- Homepage:
- Size: 50.8 KB
- Stars: 3
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Typesense Collection Schema Generator
Given a JSON object, this CLI utility gives you a **first-draft** Typesense Collection schema for the JSON object, that you can edit to suit your needs.
## Usage:
```bash
npx typesense-collection-schema-generator
```An input JSON file like this:
```json
{
"id": 133,
"organization_name": "Acme Inc",
"country": "USA",
"full_name": "John Herrero",
"address_string": "123 ABC Street",
"address": {
"line1": "123 ABC Street"
},
"addresses": [
{"line1": "123 ABC Street"},
{"line1": "234 ABC Street"}
],
"tags": ["TagA", "TagB", "TagC"]
}
```Will generate an output schema like this:
```json
{
"name": "your_collection_name",
"fields": [
{ "name": "organization_name", "type": "string", "optional": true },
{ "name": "country", "type": "string", "optional": true },
{ "name": "full_name", "type": "string", "optional": true },
{ "name": "address_string", "type": "string", "optional": true },
{ "name": "address", "type": "object", "optional": true },
{ "name": "addresses", "type": "object[]", "optional": true },
{ "name": "tags", "type": "string[]", "optional": true }
]
}
```> [!IMPORTANT]
> This schema is not meant to be used as-is. You want to review the generated schema, add `facet: true` for any facet fields, remove any un-indexed fields, or consider using auto-schema detection. Consider using regex field names for repeated field definitions.