issue-3: Apply recommended index settings: add attribute ranking rule to products index #4

Owner

What & why

Applies the index-side fix recommended in the search-relevance research brief: add the missing attribute ranking rule to the Shoppy Meilisearch products index settings. This restores the Meilisearch default word-position sub-scoring, so a product whose name starts with the query term (e.g. Bananas, Apple) outranks a mid-name match (e.g. Squeezie Banana Yoghurt Pouch) even at a higher price.

Also brings the repo's version-controlled index settings + research docs into the tree, and documents the whole thing in the README.

Empirically (A/B on scratch index, app-default price asc sort + store filter): banana/coles flips from "yoghurt pouch #1" to Bananas #1; woolworths/coles apple already OK and stays OK. Per the brief: sort stays before exactness (moving it penalises plural-named produce) and no synonyms are added (no measurable benefit given prefixSearch: "indexingTime").

Files changed

Modified

  • README.md — new repo documentation: purpose, repo layout, index-settings reference for both indexes, consumption pipeline (product-sync → Meilisearch → bff), search-relevance summary + recommended fix, workflow conventions, related repos.

Added

  • shoppy-products.json — Meilisearch settings template for the products index (mirrors shoppy-indexes/shoppy-test.json), with the attribute ranking rule applied:
    - "rankingRules": ["words", "typo", "proximity", "sort", "exactness"]
    + "rankingRules": ["words", "typo", "proximity", "attribute", "sort", "exactness"]
    
  • shoppy-categories.json — Meilisearch settings template for the categories index (mirrors shoppy-indexes/shoppy-categories.json); unchanged settings, baseline tracked for review.
  • docs/research-brief-meilisearch-search-relevance.md — the research brief: singular vs plural search relevance findings, root cause, A/B data, and validation steps.

Notes

  • Settings apply automatically at the next fresh index run (e.g. shoppy-test-v10) — no data changes needed.
  • The live template shoppy-indexes/shoppy-test.json (consumed by product-sync) still needs the same one-line change to take effect in production — tracked in #3.
  • Embedding server (10.1.5.170:1234) is down; the next fresh index run will fail to embed unless restored.

Closes #3

## What & why Applies the index-side fix recommended in the search-relevance research brief: add the missing `attribute` ranking rule to the Shoppy Meilisearch **products** index settings. This restores the Meilisearch default word-position sub-scoring, so a product whose `name` *starts* with the query term (e.g. `Bananas`, `Apple`) outranks a mid-name match (e.g. `Squeezie Banana Yoghurt Pouch`) even at a higher price. Also brings the repo's version-controlled index settings + research docs into the tree, and documents the whole thing in the README. Empirically (A/B on scratch index, app-default `price asc` sort + store filter): `banana`/coles flips from "yoghurt pouch #1" to **`Bananas` #1**; woolworths/coles `apple` already OK and stays OK. Per the brief: `sort` stays before `exactness` (moving it penalises plural-named produce) and no synonyms are added (no measurable benefit given `prefixSearch: "indexingTime"`). ## Files changed **Modified** - `README.md` — new repo documentation: purpose, repo layout, index-settings reference for both indexes, consumption pipeline (product-sync → Meilisearch → bff), search-relevance summary + recommended fix, workflow conventions, related repos. **Added** - `shoppy-products.json` — Meilisearch settings template for the products index (mirrors `shoppy-indexes/shoppy-test.json`), **with the `attribute` ranking rule applied**: ```diff - "rankingRules": ["words", "typo", "proximity", "sort", "exactness"] + "rankingRules": ["words", "typo", "proximity", "attribute", "sort", "exactness"] ``` - `shoppy-categories.json` — Meilisearch settings template for the categories index (mirrors `shoppy-indexes/shoppy-categories.json`); unchanged settings, baseline tracked for review. - `docs/research-brief-meilisearch-search-relevance.md` — the research brief: singular vs plural search relevance findings, root cause, A/B data, and validation steps. ## Notes - Settings apply automatically at the next fresh index run (e.g. `shoppy-test-v10`) — no data changes needed. - The live template `shoppy-indexes/shoppy-test.json` (consumed by `product-sync`) still needs the same one-line change to take effect in production — tracked in #3. - Embedding server (`10.1.5.170:1234`) is down; the next fresh index run will fail to embed unless restored. Closes #3
david merged commit df465b371d into main 2026-08-27 22:27:04 +00:00
david deleted branch feature/issue-3/apply-recommended-index-settings-add-attribute-ranking-rule-to-products-index 2026-08-27 22:27:05 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
shoppy/shoppy-index-configuration!4
No description provided.