Skip to main content

Laura Geller: Unreachable Documents (2026-05-20)

Summary

46 products (234 documents) were stored in the Marqo index but invisible to all search methods (LEXICAL, TENSOR, collection, filter). get-documents returned _found: true for all of them.

Root Cause

Merchandising filter in KV store. The index's page and search triggers both contained:

filter_string: "productMetafieldSeoHidden:0 AND NOT productStatus:(unlisted)"

44 of the 46 unreachable products had productMetafieldSeoHidden: 1 set as a Shopify metafield. The merchandising layer injected this filter into every search request via the search proxy, making these documents invisible.

The remaining 2 unreachable products were also excluded by other merchandising conditions.

Reuse

This script and diagnostic pattern is useful when:

  • Products exist in the Marqo document store (get-documents returns them) but don't appear in search results
  • A bulk sync reports success but products are still missing from the storefront
  • You need to distinguish between an indexing failure (doc not in store) vs a search/merchandising issue (doc in store but filtered out)

Diagnostic steps

  1. Verify documents exist via get-documents endpoint with specific doc IDs
  2. Search multiple ways_id filter, parentProductId filter, collection name, text query — to rule out a specific search path issue
  3. Compare fields between a reachable and unreachable document — look for fields that differ consistently (like productMetafieldSeoHidden)
  4. Check merchandising KV for filter_string rules that may exclude the documents. The KV keys follow the pattern {index_id}|page and {index_id}|search

Files