Amrit Sharma
05/10/2023, 11:22 AM"fields": [
// Other fields...
// Include indexing for fields within the variants object
{"name": "variants", "type": "object[]", "facet": true, "index": true},
{"name": "variants.combination", "type": "string[]", "facet": true},
{"name": "variants.ssin", "type": "string", "facet": true},
{"name": "variants.brandSku", "type": "string", "facet": true},
{"name": "variants.sellingPrice", "type": "int32", "facet": true},
{"name": "variants.finalListingPrice", "type": "int32", "facet": true},
{"name": "variants.internalDiscountPercentage", "type": "int32", "facet": true},
Kishore Nallan
05/10/2023, 11:24 AMAmrit Sharma
05/10/2023, 11:25 AMAmrit Sharma
05/10/2023, 11:26 AM"hits": [
{
"document": {
"brand.cover": "String Value",
"brand.description": "String Value",
"brand.id": "String Value",
"brand.logo": "String Value",
"brand.name": "String Value",
Kishore Nallan
05/10/2023, 11:36 AMKishore Nallan
05/10/2023, 11:43 AMKishore Nallan
05/10/2023, 11:44 AMAmrit Sharma
05/10/2023, 12:03 PMKishore Nallan
05/10/2023, 12:04 PMKishore Nallan
05/10/2023, 12:04 PMAmrit Sharma
05/10/2023, 12:04 PMAmrit Sharma
05/10/2023, 12:05 PMKishore Nallan
05/10/2023, 12:10 PMAmrit Sharma
05/10/2023, 12:13 PMKishore Nallan
05/10/2023, 12:51 PMJason Bosco
05/10/2023, 2:59 PMAmrit Sharma
05/10/2023, 2:59 PMAmrit Sharma
05/10/2023, 3:00 PMconst fields: Array<CollectionFieldSchema> = [
{ name: 'productId', type: 'string' },
{ name: 'name', type: 'string' },
{ name: 'hsn', type: 'string', index: false, optional: true },
{ name: 'gstRate', type: 'int32', index: false, optional: true },
{ name: 'originCountry', type: 'string' },
{ name: 'shortDescription', type: 'string' },
{ name: 'longDescription', type: 'string' },
{ name: 'prescriptionRequired', type: 'bool' },
{ name: 'isReturnable', type: 'bool' },
{ name: 'cancelation.isCancelable', type: 'bool' },
{
name: 'cancelation.cancelationWindow',
type: 'int32',
index: false,
optional: true,
},
{ name: 'manufacturer.name', type: 'string', facet: true },
{ name: 'manufacturer.address', type: 'string', facet: true },
{ name: 'manufacturer.contact', type: 'string', facet: true },
{ name: 'warranty.isApplicable', type: 'bool', facet: true },
{ name: 'brand.id', type: 'string', facet: true },
{ name: 'brand.name', type: 'string', facet: true },
{ name: 'brand.description', type: 'string', facet: true },
{ name: 'brand.logo', type: 'string', index: false, optional: true },
{ name: 'brand.cover', type: 'string', index: false, optional: true },
{ name: 'category.id', type: 'string', facet: true },
{ name: 'category.name', type: 'string', facet: true },
{ name: 'subcategory.id', type: 'string', facet: true },
{ name: 'subcategory.name', type: 'string', facet: true },
{ name: 'tag.id', type: 'string' },
{ name: 'tag.name', type: 'string' },
{ name: 'variants.combination', type: 'string[]' },
{ name: 'variants.ssin', type: 'string', index: false, optional: true },
{ name: 'variants.brandSku', type: 'string', facet: true },
{ name: 'variants.sellingPrice', type: 'int32' },
{ name: 'variants.finalListingPrice', type: 'int32' },
{
name: 'variants.internalDiscountPercentage',
type: 'int32',
facet: true,
},
];
const productSchema = {
name: 'products',
fields,
default_sorting_field: 'variants.finalListingPrice',
enable_nested_fields: true,
};
return await client.collections().create(productSchema);
Amrit Sharma
05/10/2023, 3:01 PMResponse
{
"created_at": 1683730309,
"default_sorting_field": "variants.finalListingPrice",
"enable_nested_fields": true,
"fields": [
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "productId",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "name",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": false,
"index": false,
"infix": false,
"locale": "",
"name": "hsn",
"optional": true,
"sort": false,
"type": "string"
},
{
"facet": false,
"index": false,
"infix": false,
"locale": "",
"name": "gstRate",
"optional": true,
"sort": true,
"type": "int32"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "originCountry",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "shortDescription",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "longDescription",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "prescriptionRequired",
"optional": false,
"sort": true,
"type": "bool"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "isReturnable",
"optional": false,
"sort": true,
"type": "bool"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "cancelation.isCancelable",
"optional": false,
"sort": true,
"type": "bool"
},
{
"facet": false,
"index": false,
"infix": false,
"locale": "",
"name": "cancelation.cancelationWindow",
"optional": true,
"sort": true,
"type": "int32"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "manufacturer.name",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "manufacturer.address",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "manufacturer.contact",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "warranty.isApplicable",
"optional": false,
"sort": true,
"type": "bool"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "brand.id",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "brand.name",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "brand.description",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": false,
"index": false,
"infix": false,
"locale": "",
"name": "brand.logo",
"optional": true,
"sort": false,
"type": "string"
},
{
"facet": false,
"index": false,
"infix": false,
"locale": "",
"name": "brand.cover",
"optional": true,
"sort": false,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "category.id",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "category.name",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "subcategory.id",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "subcategory.name",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "tag.id",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "tag.name",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "variants.combination",
"optional": false,
"sort": false,
"type": "string[]"
},
{
"facet": false,
"index": false,
"infix": false,
"locale": "",
"name": "variants.ssin",
"optional": true,
"sort": false,
"type": "string"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "variants.brandSku",
"optional": false,
"sort": false,
"type": "string"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "variants.sellingPrice",
"optional": false,
"sort": true,
"type": "int32"
},
{
"facet": false,
"index": true,
"infix": false,
"locale": "",
"name": "variants.finalListingPrice",
"optional": false,
"sort": true,
"type": "int32"
},
{
"facet": true,
"index": true,
"infix": false,
"locale": "",
"name": "variants.internalDiscountPercentage",
"optional": false,
"sort": true,
"type": "int32"
}
],
"name": "products",
"num_documents": 0,
"symbols_to_index": [],
"token_separators": []
}
Kishore Nallan
05/10/2023, 3:06 PMKishore Nallan
05/10/2023, 3:07 PMAmrit Sharma
05/10/2023, 3:08 PMKishore Nallan
05/10/2023, 3:22 PMKishore Nallan
05/10/2023, 3:22 PMvariants.sellingPrice
must be an array since it's inside an array of objects.Kishore Nallan
05/10/2023, 3:23 PMKishore Nallan
05/10/2023, 3:23 PMAmrit Sharma
05/10/2023, 3:26 PMAmrit Sharma
05/10/2023, 3:26 PM<https://typesense-community.slack.com/archives/C01P749MET0/p1683717787892319>
Amrit Sharma
05/10/2023, 3:26 PMAmrit Sharma
05/10/2023, 3:27 PM"fields": [
// Other fields...
// Include indexing for fields within the variants object
{"name": "variants", "type": "object[]", "facet": true, "index": true},
{"name": "variants.combination", "type": "string[]", "facet": true},
{"name": "variants.ssin", "type": "string", "facet": true},
{"name": "variants.brandSku", "type": "string", "facet": true},
{"name": "variants.sellingPrice", "type": "int32", "facet": true},
{"name": "variants.finalListingPrice", "type": "int32", "facet": true},
{"name": "variants.internalDiscountPercentage", "type": "int32", "facet": true},
Kishore Nallan
05/10/2023, 3:49 PMKishore Nallan
05/10/2023, 3:50 PMAmrit Sharma
05/10/2023, 4:25 PM{
name: 'variants',
type: 'object[]',
facet: true,
index: true,
fields: [
{ name: 'combination', type: 'string[]', facet: true },
{ name: 'ssin', type: 'string' },
{ name: 'brandSku', type: 'string', facet: true },
{ name: 'sellingPrice', type: 'int32', facet: true },
{ name: 'finalListingPrice', type: 'int32', facet: true },
{ name: 'internalDiscountPercentage', type: 'int32', facet: true },
],
},
Amrit Sharma
05/10/2023, 4:26 PMconst productSchema = {
name: 'products',
fields,
default_sorting_field: 'finalListingPrice',
enable_nested_fields: true,
};
Amrit Sharma
05/10/2023, 4:26 PMfinalListingPrice
but is not found in the schema.Amrit Sharma
05/10/2023, 4:27 PMAmrit Sharma
05/10/2023, 4:27 PMKishore Nallan
05/11/2023, 3:20 AMKishore Nallan
05/11/2023, 3:21 AMsort: false
or just omit the sort property.Amrit Sharma
05/11/2023, 3:37 AMAmrit Sharma
05/11/2023, 3:38 AMKishore Nallan
05/11/2023, 3:38 AM"productId,name"
-- not an array.Kishore Nallan
05/11/2023, 3:39 AM