An open API service indexing awesome lists of open source software.

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

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.