「ヤマダ電機」と「ヤマダデンキ」:表記ゆれと重複の原因は 3 つ重なっていた(包含だけの比較・59 秒の差・手動専用のジョブ)

English version

トレカダッシュ 開発の記録 / 2026年8月

iOS アプリ「トレカダッシュ」の記事では、同じ店の名前が、「ヤマダ電機」と「ヤマダデンキ」のように、書き方がバラバラでした。報告は、2 つ来ました。「表記揺れしている」「同じ理由で、記事が重複している」。指示は、「他の店でも同じことが起きないように、徹底的に」でした。

この記事は、原因が 3 つ重なっていたことと、「言い換えの表を作らず、一般則で直す」過程の記録です。

この記事は、2026 年 8 月 25 日の作業の記録から書いています。

原因は、3 つ重なっていた

  1. 店名の比較が、「含んでいるか」だけだった。「ヤマダ電機」と「ヤマダデンキ」は、どちらも、もう一方を含まないので、別の店になります。
  2. 締切を、ミリ秒まで一致で比べていた。同じ「8/26 まで」でも、まとめサイト由来は 23:59:00、X 由来は 23:59:59 で、59 秒の差のせいで、重複と判定されませんでした。実データの 4 商品が、これでした。
  3. 重複を整理するジョブが、手動で動かす専用で、一度も自動で走っていなかった。「一度きりの修復」のつもりで作っても、記事は毎日入るので、重複も毎日生まれます。

直し方:言い換えの表は、作らない

店名の比較のキー(storeNameComparisonKey)を作りました。法人格、記号、空白、全角と半角を落とし、カタカナをひらがなにし、「電機、電器、でんき」を 1 つに寄せます。

店名の言い換えの表は、作りません。新しい店が増えるたびに、再発するからです。読みが同じになる書き分けを、まとめる一般則にしました。

テストで見つけた、2 つの危険

どちらも、直したあとに、テストで見つけました。

実データ 17 パターンで確かめて、食い違いは 0 件でした。

実行結果

前後
店名の表記揺れ2 件0 件
同じ商品・同じ締切・同じ店の重複7 組0 組

ついでに、「○○@スタッフ募集中」のような宣伝文の付いた店名 23 件も、そろいました。重複のとき、残す側は、値段と当落発表日を持つほうです。

分かったこと

一覧で直さず、一般則で直す。そして、直す処理は、自動で走らせる。

この話に出てくるもの

ほかの記録

コメント

感想や、記事の間違いの指摘は、ここへ。書くには、GitHub のアカウントが要ります。

押すと、giscus(giscus.app)と GitHub に接続します。押さなければ、接続しません。詳しくはあつかいに書いています。