How search works
Why a product matches, and why it doesn't.
Marutto Search is neither a prefix match nor a substring match. It splits Japanese text into words, absorbs differences in how those words are written, and matches on the result.
1. Normalisation — removing differences in writing
Before matching, the same transformations are applied to both the query and the product text.
| Transformation | Example |
|---|---|
| NFKC normalisation | WD650 → wd650 |
| Case folding | WD650 → wd650 |
| Whitespace | Runs of spaces collapse to one |
| Legacy kanji forms | 髙 → 高, 﨑 → 崎, 澤 → 沢 |
Seventeen legacy kanji forms are folded (髙﨑澤齋齊國櫻眞壽廣榮濵濱邊邉德). These appear in Japanese personal and shop names, so a catalogue that is inconsistent about them still matches either spelling.
2. Morphological analysis — splitting Japanese into words
Japanese does not put spaces between words. Marutto Search runs the text through a morphological analyser (lindera with IPADIC, the dictionary ships inside the app) before indexing it.
「春夏用リネンワンピース」 → 春夏 / 用 / リネン / ワンピースThat is why searching for ワンピース (dress) finds 春夏用リネンワンピース. A prefix search would not.
3. Reading conversion — absorbing how it was typed
The same word reaches the same products however it is entered.
| Input | Matches | applied_transforms in the response |
|---|---|---|
りんご | リンゴジュース | kana |
リンゴ | りんごジャム | kana |
ringo | りんごジュース | romaji |
わんぴーす | ワンピース | katakana |
No configuration is required. This works with no synonyms registered at all.
Not the same as synonyms. Steps 1–3 are not synonyms: they are character and reading conversions, so they work out of the box. A change of wording — Tシャツ versus カットソー, both meaning "t-shirt" — cannot be reached by conversion and is registered as a synonym instead (see Admin controls).
4. Part numbers, model numbers, SKUs
Part numbers are matched whole rather than split into words.
- An exact match is pinned to the top
- A partial entry still surfaces it (
wd650findsWD650DR) - Fullwidth input (
WD650) reaches a halfwidth part number - SKUs and barcodes are searched too
A known limitation. Entering only part of a hyphenated part number (
TOKYO-MUGlooking forTOKYO-MUG-RED) can return nothing, because of how the Japanese analyser treats the hyphen. Part numbers without hyphens are unaffected.
5. Typo correction
A misspelled query is pulled towards the nearest term. The response carries typo in applied_transforms.
Correction is a last resort: when something matches correctly, that wins.
6. Ordering
Under sort=relevance (the default), rank comes from:
- Where the match occurred — a match in the title counts for more than one in the description
- The quality of the match — exact > word > via a reading conversion > typo correction
- Sales and clicks — these separate products that match about equally well
- The merchant's settings — boosts and pins (see Admin controls)
The score is not returned. It changes with every improvement to search quality, so publishing it would mean your integration breaks on releases meant to be safe. To control ordering, use the boosts and pins in the admin.
price_asc, price_desc and newest order by that field instead of by relevance.
7. What is searched
| Content | Fields |
|---|---|
| Products | Title, description, vendor, product type, tags |
| Products (Pro) | The above plus metafields, variants and reviews |
| Articles and pages | Title and body |
Draft and unpublished products are not indexed. Search returns only what a shopper can actually buy.
Next: Indexing and sync — when a new product starts appearing