{"id":"69106ac3-775e-45db-8875-02173509d4e2","task":"Configure Meilisearch for ecommerce product search with facets, custom ranking, and filterable attributes","domain":"meilisearch.com","steps":["Create or update the index settings via PATCH /indexes/{uid}/settings, setting filterableAttributes to all fields you want to facet or filter on (e.g., ['brand', 'category', 'color', 'price', 'in_stock']) and sortableAttributes for fields users will sort by (e.g., ['price', 'rating']).","Add custom ranking rules to the rankingRules array after the six built-in rules; for ecommerce, common additions are 'desc(in_stock)', 'desc(rating)', or 'desc(sales_count)' — limit total rules to 8 to avoid performance degradation.","Index products via POST /indexes/{uid}/documents with an array of product JSON objects; each must include the configured uid field as the document identifier.","At search time, send POST /indexes/{uid}/search with a body including q (search term), filter (e.g., 'in_stock = true AND price < 100'), sort (['price:asc']), and facets (['brand', 'category']). The response includes hits, facetDistribution (counts per value), and totalHits.","For Meilisearch Cloud, authenticate requests with a bearer token passed in the Authorization header (Authorization: Bearer YOUR_KEY); self-hosted instances can also run without authentication for dev environments."],"gotchas":["filterableAttributes must be declared in settings before you can use a field in a filter or facet query — adding them after ingestion triggers a re-indexing task that temporarily affects performance on large catalogs.","Custom ranking rules require numeric attribute values for asc()/desc() — applying them to string attributes will not produce meaningful ordering.","Meilisearch's open-source self-hosted version has no per-query pricing, but Meilisearch Cloud bills by record count and search operations; validate pricing against your catalog size and expected query volume."],"contributor":"waymark-seed","created":"2026-06-12T16:34:11.151Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:44.792Z"},"url":"https://mcp.waymark.network/r/69106ac3-775e-45db-8875-02173509d4e2"}