Filters on advanced search

This commit is contained in:
Jason
2026-05-01 10:05:19 -05:00
parent 1ff3870ae9
commit 9f7c078ccc
2 changed files with 726 additions and 33 deletions
+228
View File
@@ -0,0 +1,228 @@
{
"filterGroups": [
{
"id": "type",
"label": "Type",
"icon": "📋",
"order": 1,
"options": [
{
"id": "storm_door",
"label": "Storm Door",
"value": "Storm Door",
"aliases": ["storm-door", "stormdoor"],
"keywords": ["storm", "door"],
"requiredKeywords": "all",
"associations": {
"productField": "subType.door",
"matchMethod": "exact",
"normalizedValue": "stormdoor"
}
},
{
"id": "storm_window",
"label": "Storm Window",
"value": "Storm Window",
"aliases": ["storm-window", "stormwindow"],
"keywords": ["storm", "window"],
"requiredKeywords": "all",
"associations": {
"productField": "subType.window",
"matchMethod": "exact",
"normalizedValue": "stormwindow"
}
},
{
"id": "primary_window",
"label": "Primary Window",
"value": "Primary Window",
"aliases": ["primary-window", "primarywindow"],
"keywords": ["primary", "window"],
"requiredKeywords": "all",
"associations": {
"productField": "subType.window",
"matchMethod": "exact",
"normalizedValue": "primarywindow"
}
}
],
"logicWithinGroup": "OR",
"autoCheckBehavior": {
"enabled": true,
"requireAllKeywords": true,
"requireSequential": true,
"minSpecificity": 2
}
},
{
"id": "color",
"label": "Color",
"icon": "🎨",
"order": 2,
"options": [
{
"id": "white",
"label": "White",
"value": "White",
"aliases": ["wht"],
"keywords": ["white"],
"requiredKeywords": "all",
"associations": {
"productField": "colors",
"matchMethod": "array_includes",
"normalizedValue": "white"
}
},
{
"id": "bronze",
"label": "Bronze",
"value": "Bronze",
"aliases": ["brz", "brown"],
"keywords": ["bronze"],
"requiredKeywords": "all",
"associations": {
"productField": "colors",
"matchMethod": "array_includes",
"normalizedValue": "bronze"
}
},
{
"id": "black",
"label": "Black",
"value": "Black",
"aliases": ["blk"],
"keywords": ["black"],
"requiredKeywords": "all",
"associations": {
"productField": "colors",
"matchMethod": "array_includes",
"normalizedValue": "black"
}
},
{
"id": "sandstone",
"label": "Sandstone",
"value": "Sandstone",
"aliases": ["sand", "sndst"],
"keywords": ["sandstone"],
"requiredKeywords": "all",
"associations": {
"productField": "colors",
"matchMethod": "array_includes",
"normalizedValue": "sandstone"
}
},
{
"id": "tan",
"label": "Tan",
"value": "Tan",
"aliases": [],
"keywords": ["tan"],
"requiredKeywords": "all",
"associations": {
"productField": "colors",
"matchMethod": "array_includes",
"normalizedValue": "tan"
}
},
{
"id": "mill",
"label": "Mill",
"value": "Mill",
"aliases": ["mill finish"],
"keywords": ["mill"],
"requiredKeywords": "all",
"associations": {
"productField": "colors",
"matchMethod": "array_includes",
"normalizedValue": "mill"
}
}
],
"logicWithinGroup": "OR",
"autoCheckBehavior": {
"enabled": true,
"requireAllKeywords": true,
"requireSequential": false,
"minSpecificity": 1
}
},
{
"id": "material",
"label": "Material",
"icon": "🔧",
"order": 3,
"options": [
{
"id": "aluminum",
"label": "Aluminum",
"value": "Aluminum",
"aliases": ["alum", "aluminium", "al"],
"keywords": ["aluminum"],
"requiredKeywords": "all",
"associations": {
"productField": "materials",
"matchMethod": "array_includes",
"normalizedValue": "aluminum"
}
},
{
"id": "vinyl",
"label": "Vinyl",
"value": "Vinyl",
"aliases": ["vnyl"],
"keywords": ["vinyl"],
"requiredKeywords": "all",
"associations": {
"productField": "materials",
"matchMethod": "array_includes",
"normalizedValue": "vinyl"
}
}
],
"logicWithinGroup": "OR",
"autoCheckBehavior": {
"enabled": true,
"requireAllKeywords": true,
"requireSequential": false,
"minSpecificity": 1
}
}
],
"baseTypes": [
{
"id": "door",
"label": "Door",
"keywords": ["door"],
"impliesOptions": ["storm_door"],
"productField": "baseType",
"normalizedValue": "door"
},
{
"id": "window",
"label": "Window",
"keywords": ["window"],
"impliesOptions": ["storm_window", "primary_window"],
"productField": "baseType",
"normalizedValue": "window"
},
{
"id": "patio_door",
"label": "Patio Door",
"keywords": ["patio", "door"],
"requiredKeywords": "all",
"impliesOptions": [],
"productField": "baseType",
"normalizedValue": "patiodoor"
}
],
"searchBehavior": {
"defaultLogic": "AND",
"filterLogicBetweenGroups": "AND",
"filterLogicWithinGroup": "OR",
"processOrder": ["type", "color", "material"],
"removeMatchedFromSearch": true,
"requireSequentialForMultiWord": true,
"ignoreWords": ["and", "or", "the", "a", "an"]
}
}