{ "indexName": "navidocs-pages", "description": "NaviDocs search index for boat manual pages (multi-vertical support)", "version": "1.0.0", "settings": { "searchableAttributes": [ "title", "text", "systems", "categories", "tags", "entityName", "componentName", "manufacturer", "modelNumber", "boatName" ], "filterableAttributes": [ "vertical", "organizationId", "entityId", "entityType", "userId", "docId", "documentType", "systems", "categories", "boatMake", "boatModel", "boatYear", "vesselType", "status", "priority", "language", "complianceType", "propertyType", "facilityType" ], "sortableAttributes": [ "createdAt", "updatedAt", "pageNumber", "year", "ocrConfidence", "inspectionDate", "nextDue" ], "displayedAttributes": [ "*" ], "synonyms": { "bilge": ["sump", "drain", "bilge pump"], "head": ["toilet", "marine toilet", "WC", "lavatory"], "galley": ["kitchen"], "helm": ["steering", "wheel", "cockpit controls"], "bow": ["front", "forward"], "stern": ["aft", "back", "rear"], "port": ["left"], "starboard": ["right"], "VHF": ["radio", "marine radio"], "GPS": ["chartplotter", "navigation system", "plotter"], "autopilot": ["auto helm", "auto pilot"], "windlass": ["anchor winch", "anchor windlass"], "thruster": ["bow thruster", "stern thruster"], "generator": ["gen", "genset"], "inverter": ["power inverter"], "shore power": ["dock power", "land power"], "seacock": ["through-hull", "thru-hull"], "battery": ["batteries", "house bank"], "water tank": ["fresh water tank", "water storage"], "holding tank": ["waste tank", "black water tank"], "grey water": ["gray water", "shower drain"], "HVAC": ["air conditioning", "heating", "climate control"], "engine": ["motor", "powerplant"], "transmission": ["gearbox", "drive"], "impeller": ["water pump impeller"], "alternator": ["charging system"], "starter": ["starting motor"], "fuel filter": ["fuel separator", "racor"], "water heater": ["hot water heater", "calorifier"], "refrigerator": ["fridge", "ice box"], "freezer": ["deep freeze"], "microwave": ["microwave oven"], "stove": ["cooktop", "range"], "oven": ["baking oven"], "anchor": ["ground tackle"], "chain": ["anchor chain", "rode"], "rope": ["line", "dockline"], "fender": ["bumper"], "davit": ["crane", "lifting davit"] }, "stopWords": [ "the", "a", "an", "and", "or", "but", "in", "on", "at", "to", "for", "of", "with", "by", "from", "as", "is", "was", "are", "be", "been", "being", "have", "has", "had", "do", "does", "did", "will", "would", "could", "should", "may", "might", "must", "can", "this", "that", "these", "those", "it", "its", "it's" ], "rankingRules": [ "words", "typo", "proximity", "attribute", "sort", "exactness" ], "typoTolerance": { "enabled": true, "minWordSizeForTypos": { "oneTypo": 4, "twoTypos": 8 }, "disableOnWords": [], "disableOnAttributes": [] }, "faceting": { "maxValuesPerFacet": 100 }, "pagination": { "maxTotalHits": 10000 }, "separatorTokens": [ ".", ",", ";", ":", "!", "?", "-", "_", "/", "\\", "|" ], "nonSeparatorTokens": [] }, "documentStructure": { "description": "Expected structure for indexed documents", "schema": { "id": "string (required) - Format: page_{docId}_p{pageNum}", "vertical": "string (required) - boating | marina | property", "organizationId": "string (required) - Organization UUID", "organizationName": "string (required) - Organization display name", "entityId": "string (required) - Entity UUID (boat, marina, condo)", "entityName": "string (required) - Entity display name", "entityType": "string (required) - boat | marina | condo", "subEntityId": "string (optional) - System, dock, or unit UUID", "subEntityName": "string (optional) - Sub-entity name", "componentId": "string (optional) - Component UUID", "componentName": "string (optional) - Component name", "docId": "string (required) - Document UUID", "userId": "string (required) - Owner/uploader UUID", "documentType": "string (required) - manual | service-record | inspection | certificate", "title": "string (required) - Page or section title", "pageNumber": "number (required) - 1-based page index", "text": "string (required) - Full OCR extracted text", "systems": "array (optional) - electrical, plumbing, navigation, etc", "categories": "array (optional) - maintenance, troubleshooting, safety, etc", "tags": "array (optional) - bilge, pump, generator, etc", "boatName": "string (optional) - Boat name for display", "boatMake": "string (optional) - Prestige, Beneteau, etc", "boatModel": "string (optional) - F4.9, Oceanis 45, etc", "boatYear": "number (optional) - 2024", "vesselType": "string (optional) - powerboat | sailboat | catamaran | trawler", "manufacturer": "string (optional) - Component manufacturer", "modelNumber": "string (optional) - Component model", "serialNumber": "string (optional) - Component serial", "language": "string (required) - en | fr | es | de", "ocrConfidence": "number (optional) - 0.0 to 1.0", "priority": "string (optional) - critical | normal | reference", "offlineCache": "boolean (optional) - Should be cached offline", "complianceType": "string (optional) - electrical-inspection | fire-safety | ada-compliance", "inspectionDate": "number (optional) - Unix timestamp", "nextDue": "number (optional) - Unix timestamp", "status": "string (optional) - compliant | pending | failed", "location": "object (optional) - Physical location metadata", "location.building": "string (optional) - Dock 1, Building A", "location.gps": "object (optional) - GPS coordinates", "location.gps.lat": "number (optional) - Latitude", "location.gps.lon": "number (optional) - Longitude", "createdAt": "number (required) - Unix timestamp", "updatedAt": "number (required) - Unix timestamp", "embedding": "array (optional) - Future: 1536 float vector for semantic search" } }, "exampleDocument": { "id": "page_doc_abc123_p7", "vertical": "boating", "organizationId": "org_xyz789", "organizationName": "Smith Family Boats", "entityId": "boat_prestige_f49_001", "entityName": "Sea Breeze", "entityType": "boat", "subEntityId": "system_plumbing_001", "subEntityName": "Plumbing System", "componentId": "comp_webasto_heater_001", "componentName": "Webasto Water Heater", "docId": "doc_abc123", "userId": "user_456", "documentType": "component-manual", "title": "8.7 Blackwater System - Maintenance", "pageNumber": 7, "text": "The blackwater pump is located in the aft compartment beneath the master berth. To access the pump, remove the inspection panel located...", "systems": ["plumbing", "waste-management"], "categories": ["maintenance", "troubleshooting"], "tags": ["bilge", "pump", "blackwater", "waste"], "boatName": "Sea Breeze", "boatMake": "Prestige", "boatModel": "F4.9", "boatYear": 2024, "vesselType": "powerboat", "manufacturer": "Webasto", "modelNumber": "FCF Platinum Series", "serialNumber": "WB-2024-12345", "language": "en", "ocrConfidence": 0.94, "priority": "normal", "offlineCache": true, "createdAt": 1740234567, "updatedAt": 1740234567, "embedding": null }, "tenantTokenConfig": { "description": "Tenant tokens for secure client-side search", "expiresIn": 3600, "searchRules": { "navidocs-pages": { "filter": "userId = {{userId}} OR organizationId IN {{organizationIds}}" } } }, "notes": { "masterKey": "NEVER expose master key to client! Use tenant tokens only.", "indexUpdates": "Synonyms can be updated without re-indexing", "futureFeatures": [ "Vector search with pgvector or Qdrant integration", "Multi-language indexes (separate per language)", "Geo-search for property/marina vertical", "Faceted search UI" ] } }