{"content_id":"rl3zchhyg6","slug":"five-policies-before-ai-ecommerce-search-development","locale":"ja","schema_type":"HowTo","category":"how_to","category_name":"ハウツー","title":"AIショッピングモール検索の開発前に決めるべき5つの運用方針","summary":"AIはショッピングモール検索のコードを素早く作成できますが、商品の表示基準と例外処理は運営者が先に決める必要があります。このガイドでは、並び順、商品状態、一覧方式、検索範囲、ログ方針を実際の実装とテストのレベルで整理します。","author":{"name":"Injoys 編集部","url":"https://injoys.com/ko/about"},"key_points":["基本の並び順は、検索関連度と販売・品質シグナルを文書化された公式で組み合わせ、広告表示はオーガニック順位と分離する必要があります。","品切れ、一時販売停止、販売終了、リコールをそれぞれ異なる状態としてモデル化し、検索・詳細・カート・決済で一貫して処理する必要があります。","大規模な商品一覧では、ページネーション、もっと見る、無限スクロールを目的に合わせて選択し、URLの状態と戻る操作の復元を保証する必要があります。","商品名だけでなく、ブランド、カテゴリ、属性、同義語、モデル名を検索範囲に含め、結果なし画面を別の陳列棚として設計する必要があります。","検索ログは需要データとして活用しつつ、個人識別子とセンシティブな検索語を最小化し、原文の保管と集計データの保管を分離する必要があります。"],"content_markdown":"AIは商品一覧API、検索窓、並び替えボタンを素早く作ることができる。しかし、**どの商品を見せ、どの商品を隠し、何を「おすすめ」と呼ぶのか**はコードではなく運用ポリシーである。ショッピングモール検索は単純な照会機能ではなく、売り場配置、広告枠、在庫処理、顧客体験、データ収集が一か所に結合された意思決定システムだ。\n\nポリシーを与えないまま「商品検索機能を作って」とだけ指示すると、AIは最新登録順、商品名の部分一致、単純なページネーションのような慣れた例を任意に埋めることがある。コードは動いても、店舗運営には合わない場合がある。新着商品が品切れなのに最上段に表示され、販売終了商品がカートに入り、顧客が「りんご」と検索しても「青松ふじ」を見つけられない問題が代表的だ。\n\n## 検索順位は技術機能ではなく運用ポリシーである\n\n商品の陳列順は事業者が設計できる。ただし、画面が消費者に伝える意味と実際の順位算定方式が食い違ったり、経済的利害関係のある露出を一般的なおすすめのように見せたりすると、法的・信頼上のリスクが大きくなる。\n\n公正取引委員会は2024年6月、クーパンとCPLBの検索順位運営および役職員による購入レビュー作成などを問題視し、暫定1,400億ウォンの課徴金を発表した。同年8月の議決書基準では課徴金は1,628億ウォンと定められた。事業者側は処分に不服を申し立てており、2026年4月の報道基準で関連取消訴訟は継続中だった。この事例の実務的な教訓は、「自社商品優遇は常に違法」という単純な命題ではない。**おすすめという表示が何を意味するのか、広告・自社の利害関係を明確に示したのか、順位変更をデータと文書で説明できるのか**を設計段階で検討すべきだという点である。\n\n法律の適用はサービス構造と表示方法によって変わり得るため、実際のリリース前には関連法令と最新の執行事例を別途確認するのが安全だ。\n\n## 一行プロンプトが作る「即席版」の失敗ポイント\n\n| 未確定のポリシー | AIが任意に埋め得る実装 | 実際の運用リスク |\n|---|---|---|\n| 基本並び替え | `created_at DESC` | 最近登録した品切れ・検収前の商品が上位に露出 |\n| 販売状態 | 削除有無だけ確認 | 販売停止・リコール商品が検索されたり注文可能になったりする |\n| 一覧読み込み | 全件取得または単純な無限スクロール | 応答が遅い、戻る時に位置を失う、比較が難しい |\n| 検索範囲 | 商品名だけ部分一致 | ブランド・品種・モデル名・同義語検索に失敗 |\n| 結果なし | 空配列だけ返す | 購入意欲の高い顧客がすぐ離脱 |\n| ログ | 検索語と会員・IPをそのまま保存 | 目的外収集、過度な保管、敏感な検索語の露出リスク |\n\nAIは要件の空欄を埋めることはできるが、その選択が店舗の戦略と法的責任に合っているかは判断できない。したがって実装前に、少なくとも次の5つのポリシーを文書で確定しなければならない。\n\n## 1. 並び替えの基本値：何を「おすすめ順」と呼ぶのか\n\n基本の並び替えは顧客が最初に見る陳列棚だ。多くのユーザーは並び替えオプションを変更しないため、基本値は売上、在庫消化、新商品の育成、顧客満足度に直接影響する。\n\n### まず順位算定段階を分離する\n\n検索結果は一度に混ぜて計算するより、次の順序に分けるのが安全だ。\n\n1. **露出資格判定：** 販売可能、公開可能、法的・運用上のブロック対象ではない商品のみ候補に含める。\n2. **検索関連度計算：** 商品名、ブランド、カテゴリ、属性、同義語が検索語とどれほど合うかを計算する。\n3. **オーガニック順位計算：** 販売速度、コンバージョン率、評価の信頼度、配送品質のようなシグナルを組み合わせる。\n4. **ビジネスルール適用：** 品切れ減点、新商品の探索機会、多様性制限などを適用する。\n5. **広告スロット結合：** 広告商品はオーガニック順位と分離して挿入し、明確に表示する。\n6. **安定した同点処理：** 同じスコアの場合、`product_id`のような固定キーで順序を決める。\n\n### おすすめスコアは文書化された公式でなければならない\n\n次は構造を説明するための例にすぎず、すべてのショッピングモールに合う正解ではない。\n\n```text\norganic_score =\n  0.45 × query_relevance\n+ 0.20 × conversion_rate_28d\n+ 0.15 × sales_velocity_14d\n+ 0.10 × rating_confidence\n+ 0.10 × fulfillment_quality\n```\n\n各シグナルは同じ範囲に正規化し、期間と集計対象を明示しなければならない。単純平均の星評価は、レビュー1件の5点商品をレビュー1,000件の4.8点商品より高くしてしまう可能性があるため、レビュー数をともに反映した補正スコアを使うほうがよい。販売量だけを使うと、長く売れている商品が恒久的に有利になり得るため、直近期間の販売速度とコンバージョン率を一緒に見る。\n\n### 必ず決めるべき詳細項目\n\n- おすすめ順の目標が検索適合度、購入可能性、顧客満足、在庫効率のうち何なのか\n- 各シグナルの集計期間と更新周期\n- キャンセル率、返品率、配送遅延、品切れ可能性のような減点シグナル\n- レビューが少ない新商品に与える探索機会と最大加点\n- 同一ブランドや同一販売者が上位を過度に占有しないようにする多様性ルール\n- スコア同点時に使用する固定並び替えキー\n- 順位公式のバージョン、変更理由、適用時刻、承認者を残す監査記録\n- A/Bテストの成功指標と中止条件\n\n### 広告とオーガニックおすすめを混ぜない\n\n広告費、自社商品かどうか、高いマージンのような経済的利害関係を反映することはできるが、これを一般的な「人気順」や「おすすめ順」と誤認させると危険だ。公正取引委員会は2025年、高額商品販売プラットフォーム事件でも、有料オプションを購入した販売者の商品が基本並び替えで優先露出される構造と関連表示を問題視した。広告商品は別の候補群とスロットで管理し、カード単位で識別可能な「広告」または「スポンサー」表示を提供するのが基本だ。管理者画面には広告露出ルールとオーガニック順位公式を分離して見せるべきだ。\n\n## 2. 異常状態の商品：品切れと販売停止は別の状態である\n\n`is_sold_out`一つですべての例外を処理すると、検索、詳細、カート、注文検証が互いに食い違う。少なくとも**販売状態、在庫状態、公開状態、規制状態**を分離しなければならない。\n\n### 推奨状態モデル\n\n| 状態 | 検索・一覧 | 直接URL詳細 | カート・注文 | 推奨処理 |\n|---|---|---|---|---|\n| 販売中・在庫あり | 正常露出 | 正常表示 | 可能 | 基本候補 |\n| 販売中・一時品切れ | 表示可能だが減点または後順位 | 品切れ・再入荷通知を表示 | 不可 | 再入荷可能性を保持 |\n| 一時販売停止 | 基本的に非表示 | 一時停止案内 | 不可 | 再開時に復元 |\n| 販売終了 | 検索・カテゴリから非表示 | 終了案内と代替商品 | 不可 | 既存リンクとCS文脈を保持 |\n| 下書き・検収中 | 完全非表示 | 権限のある管理者のみ | 不可 | 公開前検収 |\n| リコール・法的ブロック | 完全非表示 | 必要時に安全告知 | 不可 | 代替おすすめより安全案内を優先 |\n\n品切れ商品は再入荷通知と検索需要把握に価値があるため、無条件に削除する必要はない。一方、販売終了商品は一般一覧から除外しつつ、既存のブックマークや外部リンクから入ってきた顧客に「販売が終了しました」という説明と類似商品を提供できる。詳細URLを維持するか`410 Gone`で終了するかは、検索流入、法的告知の必要性、代替コンテンツの価値によって決める。\n\n### 検索インデックスは注文可能可否の最終権限ではない\n\n検索インデックスには同期遅延が生じ得る。したがって検索結果で在庫があるように見えても、次の段階で再度検証しなければならない。\n\n- カート投入時に販売状態と在庫を再検証\n- 注文書進入時に価格、割引、在庫を再検証\n- 決済直前に在庫予約または原子的減算\n- 販売停止イベント発生時に検索インデックスから緊急削除\n- インデックス遅延時間と失敗件数をモニタリング\n\nこのルールがないと、検索画面は正常なのに決済段階でだけ失敗するCS事故が繰り返される。\n\n## 3. 一覧露出方式：ページネーション、もっと見る、無限スクロールのどれを使うのか\n\n商品が数千・数万個あるなら、一度にすべて送ってはいけない。ただし「ショッピングモールは常に数字ページが正解」と断定するのも正確ではない。比較中心の検索では位置と状態の復元が重要で、カテゴリ探索では「もっと見る」が便利な場合がある。\n\n| 方式 | 強み | 弱み | 合う状況 |\n|---|---|---|---|\n| 数字ページネーション | 現在位置と結果規模を理解しやすい、特定ページへの再訪問が可能 | ページ遷移が途切れ、ページ間比較が煩雑 | デスクトップ検索、深い探索、共有可能な結果 |\n| もっと見る | 既存商品を維持したままユーザーが読み込みを制御 | 結果が非常に多いとDOMとメモリが大きくなる | モバイル・カテゴリ探索、中規模結果 |\n| 無限スクロール | 連続探索が自然 | 位置・終端・全体規模が不明確で戻る時の復元が難しい | 比較より発見が重要なフィード型画面 |\n\n実務的には、**検索結果にはページネーションまたは「もっと見る + 復元可能なページURL」**、発見型おすすめフィードには無限スクロールを優先検討できる。純粋な無限スクロールを使う場合でも、次の条件を満たす必要がある。\n\n- 検索語、並び替え、フィルター、ページまたはカーソルをURLや復元可能な状態に保存\n- 詳細ページから戻った時に以前の商品とスクロール位置を復元\n- キーボード探索、スクリーンリーダー、フォーカス移動をサポート\n- フッターと主要ナビゲーションリンクにアクセス可能な代替手段を提供\n- 読み込み失敗と再試行UIを提供\n- 各結果群にアクセス可能な固有URLまたはリンク構造を用意\n\n### オフセットとカーソルページネーション\n\n`OFFSET 5000 LIMIT 40`のような深いオフセットは、データが多く更新が頻繁なほど遅くなり、重複・欠落が生じやすい。浅いページと管理者画面ではオフセットが単純だが、大規模検索には最後の結果の並び替えキーを渡すカーソル方式が安定的だ。\n\n```text\nORDER BY score DESC, product_id DESC\ncursor = last_score + last_product_id\n```\n\nスコアだけをカーソルに使うと同点商品が抜ける可能性があるため、固有キーを一緒に使用する。おすすめスコアがリアルタイムで頻繁に変わるなら、検索セッション中はスナップショットバージョンやランキング基準時刻を固定するポリシーも必要だ。\n\n## 4. 検索範囲と結果なし画面：顧客の表現を商品データにつなぐ\n\n顧客は運営者が登録した正確な商品名を知らない。「りんご」を探す顧客に「青松ふじ」、「紅露」、「家庭用りんご」を見せるには、商品データと検索辞書を一緒に設計しなければならない。\n\n### 検索フィールドの優先順位\n\n| フィールド | 推奨優先順位 | 例 |\n|---|---:|---|\n| SKU・モデル名・バーコード | 非常に高い | `SM-S928N`, `880...` |\n| 商品名 | 高い | 青松ふじりんご 3kg |\n| ブランド・メーカー | 高い | Samsung, Apple |\n| カテゴリ・商品タイプ | 中以上 | 果物、ランニングシューズ |\n| 主要属性 | 中以上 | 容量、色、規格、互換機種 |\n| 同義語・別称・品種・タグ | 中以上 | ジョギングシューズ↔ランニングシューズ、りんご↔ふじ |\n| 詳細説明 | 低い | 長い説明のノイズを減らすため低い重み |\n| レビュー本文 | 選択的 | 品質・スパム・個人情報の検討後、限定的に使用 |\n\n韓国語検索では、分かち書きの違い、字母分離、英語・ハングルのブランド表記、数字と単位、複合名詞も考慮しなければならない。たとえば「에어팟프로2」、「에어팟 프로 2」、「AirPods Pro 2」が同じ商品群につながるように正規化ルールを置く。\n\n### 推奨検索パイプライン\n\n1. 入力長と許容文字を検証する。\n2. 大文字小文字、空白、特殊文字、単位を正規化する。\n3. 商品コードとの完全一致を先に確認する。\n4. トークン化と形態・綴りの変形を適用する。\n5. 運営者が管理する同義語とカテゴリ辞書を拡張する。\n6. テキスト検索で候補を探す。\n7. 必要なら意味検索を補助候補生成に使う。\n8. 販売・公開・規制状態をフィルタリングする。\n9. オーガニックスコアを計算し、広告を別途結合する。\n10. 結果と診断情報を返す。\n\n生成AIやベクトル検索を導入する場合でも、SKU、ブランド、モデル名のような完全一致を弱めてはいけない。ショッピング検索では、**正確検索 + テキスト関連度 + 選択的な意味検索**を組み合わせたハイブリッド方式が一般的に安全だ。AIがカタログにない商品、価格、在庫を作り上げて話さないように、すべての応答を実際の商品IDと現在データにつなぐ必要がある。\n\n### 結果なし画面は第二の陳列棚である\n\n検索結果がない時、空画面だけを見せてはいけない。ただし、関連のない人気商品を検索結果であるかのように混ぜてもいけない。\n\n推奨構成は次のとおりだ。\n\n- ユーザーが入力した検索語をそのまま見せ、一致商品がないことを明確に案内\n- 誤字修正候補と同義語提案\n- フィルターによって0件になった場合、削除可能なフィルターを案内\n- 範囲を広げた結果を別ラベルで提示\n- 関連カテゴリ、代替商品、全体人気商品を区分して露出\n- 再入荷・入店リクエストまたはカスタマーセンターへの接続\n- 結果のない検索イベントを管理者分析に記録\n\n「結果なし」と「フィルター適用後なし」は別の問題だ。元の候補はあったが価格・色フィルターで0件になった場合はフィルター緩和が最も有用で、カタログ自体に商品がないなら調達データとして活用すべきだ。\n\n## 5. 検索履歴：市場調査データと個人情報を一緒に管理する\n\n結果のない検索語は、顧客が探したが購入できなかった需要を示す。人気検索語は陳列と在庫計画に役立ち、検索後のクリック・カート・購入フローは検索品質を評価する核心指標になる。\n\nしかし「検索語と回数だけ保存すれば常に個人情報ではない」と断定することはできない。検索語自体に電話番号、注文番号、名前、健康・宗教・性生活のような敏感な内容が入ることがあり、アカウント・IP・機器情報と結合されると個人を識別または追跡する可能性が大きくなる。\n\n### 推奨収集項目\n\n| 区分 | 推奨処理 |\n|---|---|\n| 正規化された検索語 | 日・時間単位で集計し、原文の保管期間を最小化 |\n| 結果数 | 0件 여부と区間値を保存 |\n| 適用フィルター・並び替え | 検索品質分析に必要な範囲だけ保存 |\n| クリック・カート・購入 | 可能なら検索語単位の集計指標として保存 |\n| セッション連携 | 必要な時だけ短寿命のランダム識別子を使用 |\n| 会員ID・IP・正確な位置 | 明確な目的と根拠がなければ検索分析ログから除外 |\n| 原文内の個人情報 | メール・電話番号・注文番号パターンをマスキングまたは廃棄 |\n\nハッシュ化された会員IDも自動的に匿名情報になるわけではない。再び特定ユーザーと結び付けられるなら、仮名情報または個人情報として扱わなければならない。保管期間も一律に定めず、目的、分析周期、セキュリティリスクを基準に原文と集計データそれぞれに設定する。\n\n### 管理者ダッシュボードに必要な指標\n\n- 検索量と固有検索語数\n- 結果なし比率\n- 検索結果クリック率\n- 検索後カート率と購入コンバージョン率\n- 検索語修正率とフィルター解除率\n- 品切れ商品露出比率\n- 上位結果の集中度とブランド多様性\n- 広告とオーガニック結果の成果を分離した指標\n- 検索インデックスの鮮度およびインデックス失敗件数\n\n低頻度の原文検索語は個人情報が含まれる可能性があるため、最小集計基準を超えた項目だけを運営者画面に露出する方法も有用だ。\n\n## 実践プロンプト：ポリシーをコードに変換する方法\n\n開発用語を多く使うより、運用ルールを明確に書くことが重要だ。次のテンプレートをサービス状況に合わせて埋め、AIに提供できる。\n\n```text\n私たちのショッピングモールの商品検索機能を設計して実装して。\n\n1. 露出資格\n- 販売中で公開状態であり、規制ブロックがない商品のみ検索候補に含める。\n- 一時品切れは表示するが、同一条件の在庫商品より後ろに送る。\n- 販売終了と一時販売停止は検索・カテゴリで隠す。\n- 販売終了商品の直接URLには終了案内と代替商品を見せ、購入ボタンは削除する。\n\n2. 基本並び替え\n- 検索語関連度を最も大きく反映する。\n- 直近28日のコンバージョン率、直近14日の販売速度、補正評価、配送品質を反映する。\n- 各重みは設定ファイルまたは管理者ポリシーで変更可能にする。\n- 同点はproduct_id降順で安定的に並べ替える。\n- 広告商品はオーガニックスコアに混ぜず、別スロットに入れて「広告」と表示する。\n\n3. 一覧探索\n- 一度に40個ずつ返す。\n- 検索語、並び替え、フィルター、ページまたはカーソルをURLから復元できるようにする。\n- 詳細ページから戻ると、一覧とスクロール位置を復元する。\n- 大規模結果はカーソルページネーションを使用する。\n\n4. 検索範囲\n- SKUとモデル名の完全一致を最優先にする。\n- 商品名、ブランド、カテゴリ、属性、同義語タグを検索する。\n- 韓国語の分かち書きと英語・ハングルのブランド表記ゆれを処理する。\n- 結果がなければ、誤字提案、フィルター緩和、関連カテゴリ、代替おすすめを区分して見せる。\n\n5. 検索ログ\n- 正規化検索語、時間区間、結果数、フィルター、集計クリック・購入指標だけを基本保存する。\n- 会員IDとIPは検索分析ログに保存しない。\n- メール、電話番号、注文番号の形式はマスキングする。\n- 原文保管期間と集計保管期間を設定値として分離する。\n\n6. 技術要件\n- データモデル、API契約、検索インデックス、同期方式、例外処理、管理者指標を一緒に設計する。\n- 実際の照会パターンに合うインデックスを提案し、実行計画の確認方法を説明する。\n- 検索インデックス遅延状況でも、カートと決済段階で状態・価格・在庫を再検証する。\n- 単体テスト、統合テスト、性能テスト、アクセシビリティテストのシナリオを作成する。\n\n実装を始める前に、私が決めていないポリシーのうち結果に影響する決定があれば先に質問し、任意に決めた仮定は別リストで表示して。\n```\n\n最後の文は、AIを単純なコード生成器から要件検討パートナーへ変える核心的な仕掛けだ。ただし質問を受けるだけで終わらせず、確定した答えをポリシー文書とテスト条件に反映しなければならない。\n\n## 実装設計：ポリシーをデータとAPIに固定する\n\n### データモデル例\n\n```text\nproducts\n- product_id\n- sales_status\n- stock_status\n- visibility_status\n- compliance_status\n- brand_id\n- category_id\n- searchable_name\n- search_tags\n- price\n- inventory_quantity\n- ranking_feature_version\n- updated_at\n```\n\n一つのフィールドに複数の意味を入れない。たとえば`status = 1`だけを置くと、販売可能、公開可能、在庫あり、規制通過のうち何を意味するのか分からない。状態遷移も表で管理し、下書きから販売中へ、販売中から終了へ移動する時に必要な検収とイベントを定義する。\n\n### API応答に含める情報\n\n- 正規化された検索語\n- 適用された並び替えとフィルター\n- 結果群と次カーソル\n- 結果数または概算結果数\n- 品切れ・販売状態バッジ\n- 広告 여부と広告表示文言\n- 誤字修正・検索範囲拡大の有無\n- 検索ポリシーバージョンと追跡用リクエストID\n\n内部デバッグ情報である生スコアと事業上敏感な重みを顧客APIにそのまま露出する必要はない。その代わり、運営者がリクエストIDで順位算定経路を再現できなければならない。\n\n### インデックスは実際の照会パターンに合わせて設計する\n\n一般的に、状態フィルターと並び替えに使う列にはB-tree系インデックスを、全文検索文書には転置インデックス系を検討する。PostgreSQLなら`tsvector`とGINインデックス、類似文字列検索が必要なら`pg_trgm`を使用できる。外部検索エンジンを使っても原則は同じだ。\n\n```sql\nCREATE INDEX idx_products_visibility\nON products (visibility_status, sales_status, compliance_status);\n\nCREATE INDEX idx_products_search_document\nON products USING GIN (search_document);\n```\n\nインデックスを多く作るほど書き込みコストと保存領域も増える。予想だけで決めず、実際のクエリとデータ分布で`EXPLAIN ANALYZE`、スロークエリログ、負荷テストを確認する。商品数が増える時は、平均応答時間よりp95・p99遅延、タイムアウト率、インデックスの鮮度を一緒に見る。\n\n### 生成AIを付ける時に追加する安全装置\n\n- 商品の存在有無、価格、在庫、配送日はカタログAPI結果のみ使用\n- モデルが作った検索語拡張は原文とともに記録し、過度な拡張を制限\n- 正確なSKU・モデル名検索は意味検索より優先\n- 販売停止・リコールフィルターはAI検索候補にも同一に適用\n- 回答に露出した商品IDと根拠フィールドを追跡\n- モデル失敗時は一般テキスト検索へフォールバック\n- プロンプト注入性の文言が商品説明やレビューにあっても、システム指示として実行しないよう分離\n\n## リリース前の受け入れテスト\n\n| シナリオ | 期待結果 |\n|---|---|\n| 昨日登録した品切れ商品と継続的に売れている在庫商品が一緒にある | 品切れ商品が基本上位を占めない |\n| 販売終了商品を検索 | 一覧にはなく、直接URLには終了案内と購入不可状態が表示される |\n| 広告商品が1位スロットに露出 | カードで広告であることを即座に識別可能 |\n| フィルター適用後0件 | フィルター削除提案と元の候補の存在有無を案内 |\n| 「ランニングシューズ」、「ジョギングシューズ」検索 | 同義語ポリシーに従って関連商品群が一貫して露出 |\n| 詳細を開いてから戻る | 検索語、フィルター、並び替え、一覧、スクロール位置が復元 |\n| 同一スコアの商品が複数ある | ページ移動を繰り返しても重複・欠落なく固定順序を維持 |\n| 検索インデックスに在庫が残っている | カート・決済段階で最新在庫によりブロック |\n| 検索語にメール・電話番号が含まれる | ログ保存前にマスキングまたは廃棄 |\n| 大量同時検索 | 定義したp95遅延とエラー率基準を満たす |\n| 管理者検索語ダッシュボード | 低頻度の原文と敏感パターンがそのまま露出されない |\n| ランキング重み変更 | ポリシーバージョン、承認者、適用時刻、前後指標が記録される |\n\n## 運用段階で繰り返すべきこと\n\n検索は一度開発して終わる機能ではない。商品構成、季節、プロモーション、顧客表現が変わるため、次の周期を運用プロセスとして置く。\n\n1. 毎週、結果のない検索語と急増検索語を検討する。\n2. 同義語とカテゴリマッピングを承認手続きで更新する。\n3. 品切れ露出率、クリック率、コンバージョン率、検索語修正率を一緒に見る。\n4. 重み変更はオフライン評価と限定的なA/Bテスト後に拡大する。\n5. 広告・自社商品・オーガニック結果の露出比率を別途監査する。\n6. 検索ログの保管期間、アクセス権限、マスキング失敗を定期点検する。\n7. 実際のトラフィックでインデックス使用率と遅いクエリを再検討する。\n\n## 結論\n\nAIは検索APIと画面を素早く作ることができるが、どの商品に顧客の前に立つ資格があるのかは決められない。実戦型ショッピングモール検索は、**並び替えの基本値、商品状態、一覧探索、検索範囲と結果なし処理、検索ログ**を先にポリシーとして確定し、そのポリシーをデータモデル、API、インデックス、テスト、管理者指標に一貫して反映した時に完成する。\n\nコーディングは自動化できても、陳列原則と責任は自動では生まれない。最も良いAIプロンプトは長く難しい開発用語ではなく、運営者がすでに決めたポリシーと、まだ決めていない質問を明確に区分した文書である。","content_html":"\u003cp\u003eAIは商品一覧API、検索窓、並び替えボタンを素早く作ることができる。しかし、\u003cstrong\u003eどの商品を見せ、どの商品を隠し、何を「おすすめ」と呼ぶのか\u003c/strong\u003eはコードではなく運用ポリシーである。ショッピングモール検索は単純な照会機能ではなく、売り場配置、広告枠、在庫処理、顧客体験、データ収集が一か所に結合された意思決定システムだ。\u003c/p\u003e\n\u003cp\u003eポリシーを与えないまま「商品検索機能を作って」とだけ指示すると、AIは最新登録順、商品名の部分一致、単純なページネーションのような慣れた例を任意に埋めることがある。コードは動いても、店舗運営には合わない場合がある。新着商品が品切れなのに最上段に表示され、販売終了商品がカートに入り、顧客が「りんご」と検索しても「青松ふじ」を見つけられない問題が代表的だ。\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#%E6%A4%9C%E7%B4%A2%E9%A0%86%E4%BD%8D%E3%81%AF%E6%8A%80%E8%A1%93%E6%A9%9F%E8%83%BD%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%8F%E9%81%8B%E7%94%A8%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%E3%81%A7%E3%81%82%E3%82%8B\" class=\"anchor\" id=\"検索順位は技術機能ではなく運用ポリシーである\"\u003e\u003c/a\u003e検索順位は技術機能ではなく運用ポリシーである\u003c/h2\u003e\n\u003cp\u003e商品の陳列順は事業者が設計できる。ただし、画面が消費者に伝える意味と実際の順位算定方式が食い違ったり、経済的利害関係のある露出を一般的なおすすめのように見せたりすると、法的・信頼上のリスクが大きくなる。\u003c/p\u003e\n\u003cp\u003e公正取引委員会は2024年6月、クーパンとCPLBの検索順位運営および役職員による購入レビュー作成などを問題視し、暫定1,400億ウォンの課徴金を発表した。同年8月の議決書基準では課徴金は1,628億ウォンと定められた。事業者側は処分に不服を申し立てており、2026年4月の報道基準で関連取消訴訟は継続中だった。この事例の実務的な教訓は、「自社商品優遇は常に違法」という単純な命題ではない。\u003cstrong\u003eおすすめという表示が何を意味するのか、広告・自社の利害関係を明確に示したのか、順位変更をデータと文書で説明できるのか\u003c/strong\u003eを設計段階で検討すべきだという点である。\u003c/p\u003e\n\u003cp\u003e法律の適用はサービス構造と表示方法によって変わり得るため、実際のリリース前には関連法令と最新の執行事例を別途確認するのが安全だ。\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#%E4%B8%80%E8%A1%8C%E3%83%97%E3%83%AD%E3%83%B3%E3%83%97%E3%83%88%E3%81%8C%E4%BD%9C%E3%82%8B%E5%8D%B3%E5%B8%AD%E7%89%88%E3%81%AE%E5%A4%B1%E6%95%97%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88\" class=\"anchor\" id=\"一行プロンプトが作る即席版の失敗ポイント\"\u003e\u003c/a\u003e一行プロンプトが作る「即席版」の失敗ポイント\u003c/h2\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003e未確定のポリシー\u003c/th\u003e\n\u003cth\u003eAIが任意に埋め得る実装\u003c/th\u003e\n\u003cth\u003e実際の運用リスク\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"未確定のポリシー\"\u003e基本並び替え\u003c/td\u003e\n\u003ctd data-label=\"AIが任意に埋め得る実装\"\u003e\u003ccode\u003ecreated_at DESC\u003c/code\u003e\u003c/td\u003e\n\u003ctd data-label=\"実際の運用リスク\"\u003e最近登録した品切れ・検収前の商品が上位に露出\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"未確定のポリシー\"\u003e販売状態\u003c/td\u003e\n\u003ctd data-label=\"AIが任意に埋め得る実装\"\u003e削除有無だけ確認\u003c/td\u003e\n\u003ctd data-label=\"実際の運用リスク\"\u003e販売停止・リコール商品が検索されたり注文可能になったりする\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"未確定のポリシー\"\u003e一覧読み込み\u003c/td\u003e\n\u003ctd data-label=\"AIが任意に埋め得る実装\"\u003e全件取得または単純な無限スクロール\u003c/td\u003e\n\u003ctd data-label=\"実際の運用リスク\"\u003e応答が遅い、戻る時に位置を失う、比較が難しい\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"未確定のポリシー\"\u003e検索範囲\u003c/td\u003e\n\u003ctd data-label=\"AIが任意に埋め得る実装\"\u003e商品名だけ部分一致\u003c/td\u003e\n\u003ctd data-label=\"実際の運用リスク\"\u003eブランド・品種・モデル名・同義語検索に失敗\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"未確定のポリシー\"\u003e結果なし\u003c/td\u003e\n\u003ctd data-label=\"AIが任意に埋め得る実装\"\u003e空配列だけ返す\u003c/td\u003e\n\u003ctd data-label=\"実際の運用リスク\"\u003e購入意欲の高い顧客がすぐ離脱\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"未確定のポリシー\"\u003eログ\u003c/td\u003e\n\u003ctd data-label=\"AIが任意に埋め得る実装\"\u003e検索語と会員・IPをそのまま保存\u003c/td\u003e\n\u003ctd data-label=\"実際の運用リスク\"\u003e目的外収集、過度な保管、敏感な検索語の露出リスク\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eAIは要件の空欄を埋めることはできるが、その選択が店舗の戦略と法的責任に合っているかは判断できない。したがって実装前に、少なくとも次の5つのポリシーを文書で確定しなければならない。\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#1-%E4%B8%A6%E3%81%B3%E6%9B%BF%E3%81%88%E3%81%AE%E5%9F%BA%E6%9C%AC%E5%80%A4%E4%BD%95%E3%82%92%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E9%A0%86%E3%81%A8%E5%91%BC%E3%81%B6%E3%81%AE%E3%81%8B\" class=\"anchor\" id=\"1-並び替えの基本値何をおすすめ順と呼ぶのか\"\u003e\u003c/a\u003e1. 並び替えの基本値：何を「おすすめ順」と呼ぶのか\u003c/h2\u003e\n\u003cp\u003e基本の並び替えは顧客が最初に見る陳列棚だ。多くのユーザーは並び替えオプションを変更しないため、基本値は売上、在庫消化、新商品の育成、顧客満足度に直接影響する。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E3%81%BE%E3%81%9A%E9%A0%86%E4%BD%8D%E7%AE%97%E5%AE%9A%E6%AE%B5%E9%9A%8E%E3%82%92%E5%88%86%E9%9B%A2%E3%81%99%E3%82%8B\" class=\"anchor\" id=\"まず順位算定段階を分離する\"\u003e\u003c/a\u003eまず順位算定段階を分離する\u003c/h3\u003e\n\u003cp\u003e検索結果は一度に混ぜて計算するより、次の順序に分けるのが安全だ。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cstrong\u003e露出資格判定：\u003c/strong\u003e 販売可能、公開可能、法的・運用上のブロック対象ではない商品のみ候補に含める。\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e検索関連度計算：\u003c/strong\u003e 商品名、ブランド、カテゴリ、属性、同義語が検索語とどれほど合うかを計算する。\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eオーガニック順位計算：\u003c/strong\u003e 販売速度、コンバージョン率、評価の信頼度、配送品質のようなシグナルを組み合わせる。\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eビジネスルール適用：\u003c/strong\u003e 品切れ減点、新商品の探索機会、多様性制限などを適用する。\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e広告スロット結合：\u003c/strong\u003e 広告商品はオーガニック順位と分離して挿入し、明確に表示する。\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e安定した同点処理：\u003c/strong\u003e 同じスコアの場合、\u003ccode\u003eproduct_id\u003c/code\u003eのような固定キーで順序を決める。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%82%B9%E3%82%B3%E3%82%A2%E3%81%AF%E6%96%87%E6%9B%B8%E5%8C%96%E3%81%95%E3%82%8C%E3%81%9F%E5%85%AC%E5%BC%8F%E3%81%A7%E3%81%AA%E3%81%91%E3%82%8C%E3%81%B0%E3%81%AA%E3%82%89%E3%81%AA%E3%81%84\" class=\"anchor\" id=\"おすすめスコアは文書化された公式でなければならない\"\u003e\u003c/a\u003eおすすめスコアは文書化された公式でなければならない\u003c/h3\u003e\n\u003cp\u003e次は構造を説明するための例にすぎず、すべてのショッピングモールに合う正解ではない。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003eorganic_score =\n\u003c/span\u003e\u003cspan\u003e  0.45 × query_relevance\n\u003c/span\u003e\u003cspan\u003e+ 0.20 × conversion_rate_28d\n\u003c/span\u003e\u003cspan\u003e+ 0.15 × sales_velocity_14d\n\u003c/span\u003e\u003cspan\u003e+ 0.10 × rating_confidence\n\u003c/span\u003e\u003cspan\u003e+ 0.10 × fulfillment_quality\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e各シグナルは同じ範囲に正規化し、期間と集計対象を明示しなければならない。単純平均の星評価は、レビュー1件の5点商品をレビュー1,000件の4.8点商品より高くしてしまう可能性があるため、レビュー数をともに反映した補正スコアを使うほうがよい。販売量だけを使うと、長く売れている商品が恒久的に有利になり得るため、直近期間の販売速度とコンバージョン率を一緒に見る。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E5%BF%85%E3%81%9A%E6%B1%BA%E3%82%81%E3%82%8B%E3%81%B9%E3%81%8D%E8%A9%B3%E7%B4%B0%E9%A0%85%E7%9B%AE\" class=\"anchor\" id=\"必ず決めるべき詳細項目\"\u003e\u003c/a\u003e必ず決めるべき詳細項目\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eおすすめ順の目標が検索適合度、購入可能性、顧客満足、在庫効率のうち何なのか\u003c/li\u003e\n\u003cli\u003e各シグナルの集計期間と更新周期\u003c/li\u003e\n\u003cli\u003eキャンセル率、返品率、配送遅延、品切れ可能性のような減点シグナル\u003c/li\u003e\n\u003cli\u003eレビューが少ない新商品に与える探索機会と最大加点\u003c/li\u003e\n\u003cli\u003e同一ブランドや同一販売者が上位を過度に占有しないようにする多様性ルール\u003c/li\u003e\n\u003cli\u003eスコア同点時に使用する固定並び替えキー\u003c/li\u003e\n\u003cli\u003e順位公式のバージョン、変更理由、適用時刻、承認者を残す監査記録\u003c/li\u003e\n\u003cli\u003eA/Bテストの成功指標と中止条件\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E5%BA%83%E5%91%8A%E3%81%A8%E3%82%AA%E3%83%BC%E3%82%AC%E3%83%8B%E3%83%83%E3%82%AF%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%82%92%E6%B7%B7%E3%81%9C%E3%81%AA%E3%81%84\" class=\"anchor\" id=\"広告とオーガニックおすすめを混ぜない\"\u003e\u003c/a\u003e広告とオーガニックおすすめを混ぜない\u003c/h3\u003e\n\u003cp\u003e広告費、自社商品かどうか、高いマージンのような経済的利害関係を反映することはできるが、これを一般的な「人気順」や「おすすめ順」と誤認させると危険だ。公正取引委員会は2025年、高額商品販売プラットフォーム事件でも、有料オプションを購入した販売者の商品が基本並び替えで優先露出される構造と関連表示を問題視した。広告商品は別の候補群とスロットで管理し、カード単位で識別可能な「広告」または「スポンサー」表示を提供するのが基本だ。管理者画面には広告露出ルールとオーガニック順位公式を分離して見せるべきだ。\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#2-%E7%95%B0%E5%B8%B8%E7%8A%B6%E6%85%8B%E3%81%AE%E5%95%86%E5%93%81%E5%93%81%E5%88%87%E3%82%8C%E3%81%A8%E8%B2%A9%E5%A3%B2%E5%81%9C%E6%AD%A2%E3%81%AF%E5%88%A5%E3%81%AE%E7%8A%B6%E6%85%8B%E3%81%A7%E3%81%82%E3%82%8B\" class=\"anchor\" id=\"2-異常状態の商品品切れと販売停止は別の状態である\"\u003e\u003c/a\u003e2. 異常状態の商品：品切れと販売停止は別の状態である\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eis_sold_out\u003c/code\u003e一つですべての例外を処理すると、検索、詳細、カート、注文検証が互いに食い違う。少なくとも\u003cstrong\u003e販売状態、在庫状態、公開状態、規制状態\u003c/strong\u003eを分離しなければならない。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E6%8E%A8%E5%A5%A8%E7%8A%B6%E6%85%8B%E3%83%A2%E3%83%87%E3%83%AB\" class=\"anchor\" id=\"推奨状態モデル\"\u003e\u003c/a\u003e推奨状態モデル\u003c/h3\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003e状態\u003c/th\u003e\n\u003cth\u003e検索・一覧\u003c/th\u003e\n\u003cth\u003e直接URL詳細\u003c/th\u003e\n\u003cth\u003eカート・注文\u003c/th\u003e\n\u003cth\u003e推奨処理\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"状態\"\u003e販売中・在庫あり\u003c/td\u003e\n\u003ctd data-label=\"検索・一覧\"\u003e正常露出\u003c/td\u003e\n\u003ctd data-label=\"直接URL詳細\"\u003e正常表示\u003c/td\u003e\n\u003ctd data-label=\"カート・注文\"\u003e可能\u003c/td\u003e\n\u003ctd data-label=\"推奨処理\"\u003e基本候補\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"状態\"\u003e販売中・一時品切れ\u003c/td\u003e\n\u003ctd data-label=\"検索・一覧\"\u003e表示可能だが減点または後順位\u003c/td\u003e\n\u003ctd data-label=\"直接URL詳細\"\u003e品切れ・再入荷通知を表示\u003c/td\u003e\n\u003ctd data-label=\"カート・注文\"\u003e不可\u003c/td\u003e\n\u003ctd data-label=\"推奨処理\"\u003e再入荷可能性を保持\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"状態\"\u003e一時販売停止\u003c/td\u003e\n\u003ctd data-label=\"検索・一覧\"\u003e基本的に非表示\u003c/td\u003e\n\u003ctd data-label=\"直接URL詳細\"\u003e一時停止案内\u003c/td\u003e\n\u003ctd data-label=\"カート・注文\"\u003e不可\u003c/td\u003e\n\u003ctd data-label=\"推奨処理\"\u003e再開時に復元\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"状態\"\u003e販売終了\u003c/td\u003e\n\u003ctd data-label=\"検索・一覧\"\u003e検索・カテゴリから非表示\u003c/td\u003e\n\u003ctd data-label=\"直接URL詳細\"\u003e終了案内と代替商品\u003c/td\u003e\n\u003ctd data-label=\"カート・注文\"\u003e不可\u003c/td\u003e\n\u003ctd data-label=\"推奨処理\"\u003e既存リンクとCS文脈を保持\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"状態\"\u003e下書き・検収中\u003c/td\u003e\n\u003ctd data-label=\"検索・一覧\"\u003e完全非表示\u003c/td\u003e\n\u003ctd data-label=\"直接URL詳細\"\u003e権限のある管理者のみ\u003c/td\u003e\n\u003ctd data-label=\"カート・注文\"\u003e不可\u003c/td\u003e\n\u003ctd data-label=\"推奨処理\"\u003e公開前検収\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"状態\"\u003eリコール・法的ブロック\u003c/td\u003e\n\u003ctd data-label=\"検索・一覧\"\u003e完全非表示\u003c/td\u003e\n\u003ctd data-label=\"直接URL詳細\"\u003e必要時に安全告知\u003c/td\u003e\n\u003ctd data-label=\"カート・注文\"\u003e不可\u003c/td\u003e\n\u003ctd data-label=\"推奨処理\"\u003e代替おすすめより安全案内を優先\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003e品切れ商品は再入荷通知と検索需要把握に価値があるため、無条件に削除する必要はない。一方、販売終了商品は一般一覧から除外しつつ、既存のブックマークや外部リンクから入ってきた顧客に「販売が終了しました」という説明と類似商品を提供できる。詳細URLを維持するか\u003ccode\u003e410 Gone\u003c/code\u003eで終了するかは、検索流入、法的告知の必要性、代替コンテンツの価値によって決める。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E6%A4%9C%E7%B4%A2%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E3%81%AF%E6%B3%A8%E6%96%87%E5%8F%AF%E8%83%BD%E5%8F%AF%E5%90%A6%E3%81%AE%E6%9C%80%E7%B5%82%E6%A8%A9%E9%99%90%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%84\" class=\"anchor\" id=\"検索インデックスは注文可能可否の最終権限ではない\"\u003e\u003c/a\u003e検索インデックスは注文可能可否の最終権限ではない\u003c/h3\u003e\n\u003cp\u003e検索インデックスには同期遅延が生じ得る。したがって検索結果で在庫があるように見えても、次の段階で再度検証しなければならない。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eカート投入時に販売状態と在庫を再検証\u003c/li\u003e\n\u003cli\u003e注文書進入時に価格、割引、在庫を再検証\u003c/li\u003e\n\u003cli\u003e決済直前に在庫予約または原子的減算\u003c/li\u003e\n\u003cli\u003e販売停止イベント発生時に検索インデックスから緊急削除\u003c/li\u003e\n\u003cli\u003eインデックス遅延時間と失敗件数をモニタリング\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eこのルールがないと、検索画面は正常なのに決済段階でだけ失敗するCS事故が繰り返される。\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#3-%E4%B8%80%E8%A6%A7%E9%9C%B2%E5%87%BA%E6%96%B9%E5%BC%8F%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%8D%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%82%E3%81%A3%E3%81%A8%E8%A6%8B%E3%82%8B%E7%84%A1%E9%99%90%E3%82%B9%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%AB%E3%81%AE%E3%81%A9%E3%82%8C%E3%82%92%E4%BD%BF%E3%81%86%E3%81%AE%E3%81%8B\" class=\"anchor\" id=\"3-一覧露出方式ページネーションもっと見る無限スクロールのどれを使うのか\"\u003e\u003c/a\u003e3. 一覧露出方式：ページネーション、もっと見る、無限スクロールのどれを使うのか\u003c/h2\u003e\n\u003cp\u003e商品が数千・数万個あるなら、一度にすべて送ってはいけない。ただし「ショッピングモールは常に数字ページが正解」と断定するのも正確ではない。比較中心の検索では位置と状態の復元が重要で、カテゴリ探索では「もっと見る」が便利な場合がある。\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003e方式\u003c/th\u003e\n\u003cth\u003e強み\u003c/th\u003e\n\u003cth\u003e弱み\u003c/th\u003e\n\u003cth\u003e合う状況\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"方式\"\u003e数字ページネーション\u003c/td\u003e\n\u003ctd data-label=\"強み\"\u003e現在位置と結果規模を理解しやすい、特定ページへの再訪問が可能\u003c/td\u003e\n\u003ctd data-label=\"弱み\"\u003eページ遷移が途切れ、ページ間比較が煩雑\u003c/td\u003e\n\u003ctd data-label=\"合う状況\"\u003eデスクトップ検索、深い探索、共有可能な結果\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"方式\"\u003eもっと見る\u003c/td\u003e\n\u003ctd data-label=\"強み\"\u003e既存商品を維持したままユーザーが読み込みを制御\u003c/td\u003e\n\u003ctd data-label=\"弱み\"\u003e結果が非常に多いとDOMとメモリが大きくなる\u003c/td\u003e\n\u003ctd data-label=\"合う状況\"\u003eモバイル・カテゴリ探索、中規模結果\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"方式\"\u003e無限スクロール\u003c/td\u003e\n\u003ctd data-label=\"強み\"\u003e連続探索が自然\u003c/td\u003e\n\u003ctd data-label=\"弱み\"\u003e位置・終端・全体規模が不明確で戻る時の復元が難しい\u003c/td\u003e\n\u003ctd data-label=\"合う状況\"\u003e比較より発見が重要なフィード型画面\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003e実務的には、\u003cstrong\u003e検索結果にはページネーションまたは「もっと見る + 復元可能なページURL」\u003c/strong\u003e、発見型おすすめフィードには無限スクロールを優先検討できる。純粋な無限スクロールを使う場合でも、次の条件を満たす必要がある。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e検索語、並び替え、フィルター、ページまたはカーソルをURLや復元可能な状態に保存\u003c/li\u003e\n\u003cli\u003e詳細ページから戻った時に以前の商品とスクロール位置を復元\u003c/li\u003e\n\u003cli\u003eキーボード探索、スクリーンリーダー、フォーカス移動をサポート\u003c/li\u003e\n\u003cli\u003eフッターと主要ナビゲーションリンクにアクセス可能な代替手段を提供\u003c/li\u003e\n\u003cli\u003e読み込み失敗と再試行UIを提供\u003c/li\u003e\n\u003cli\u003e各結果群にアクセス可能な固有URLまたはリンク構造を用意\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E3%82%AA%E3%83%95%E3%82%BB%E3%83%83%E3%83%88%E3%81%A8%E3%82%AB%E3%83%BC%E3%82%BD%E3%83%AB%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%8D%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3\" class=\"anchor\" id=\"オフセットとカーソルページネーション\"\u003e\u003c/a\u003eオフセットとカーソルページネーション\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eOFFSET 5000 LIMIT 40\u003c/code\u003eのような深いオフセットは、データが多く更新が頻繁なほど遅くなり、重複・欠落が生じやすい。浅いページと管理者画面ではオフセットが単純だが、大規模検索には最後の結果の並び替えキーを渡すカーソル方式が安定的だ。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003eORDER BY score DESC, product_id DESC\n\u003c/span\u003e\u003cspan\u003ecursor = last_score + last_product_id\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eスコアだけをカーソルに使うと同点商品が抜ける可能性があるため、固有キーを一緒に使用する。おすすめスコアがリアルタイムで頻繁に変わるなら、検索セッション中はスナップショットバージョンやランキング基準時刻を固定するポリシーも必要だ。\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#4-%E6%A4%9C%E7%B4%A2%E7%AF%84%E5%9B%B2%E3%81%A8%E7%B5%90%E6%9E%9C%E3%81%AA%E3%81%97%E7%94%BB%E9%9D%A2%E9%A1%A7%E5%AE%A2%E3%81%AE%E8%A1%A8%E7%8F%BE%E3%82%92%E5%95%86%E5%93%81%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AB%E3%81%A4%E3%81%AA%E3%81%90\" class=\"anchor\" id=\"4-検索範囲と結果なし画面顧客の表現を商品データにつなぐ\"\u003e\u003c/a\u003e4. 検索範囲と結果なし画面：顧客の表現を商品データにつなぐ\u003c/h2\u003e\n\u003cp\u003e顧客は運営者が登録した正確な商品名を知らない。「りんご」を探す顧客に「青松ふじ」、「紅露」、「家庭用りんご」を見せるには、商品データと検索辞書を一緒に設計しなければならない。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E6%A4%9C%E7%B4%A2%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%AE%E5%84%AA%E5%85%88%E9%A0%86%E4%BD%8D\" class=\"anchor\" id=\"検索フィールドの優先順位\"\u003e\u003c/a\u003e検索フィールドの優先順位\u003c/h3\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eフィールド\u003c/th\u003e\n\u003cth\u003e推奨優先順位\u003c/th\u003e\n\u003cth\u003e例\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"フィールド\"\u003eSKU・モデル名・バーコード\u003c/td\u003e\n\u003ctd data-label=\"推奨優先順位\"\u003e非常に高い\u003c/td\u003e\n\u003ctd data-label=\"例\"\u003e\n\u003ccode\u003eSM-S928N\u003c/code\u003e, \u003ccode\u003e880...\u003c/code\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"フィールド\"\u003e商品名\u003c/td\u003e\n\u003ctd data-label=\"推奨優先順位\"\u003e高い\u003c/td\u003e\n\u003ctd data-label=\"例\"\u003e青松ふじりんご 3kg\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"フィールド\"\u003eブランド・メーカー\u003c/td\u003e\n\u003ctd data-label=\"推奨優先順位\"\u003e高い\u003c/td\u003e\n\u003ctd data-label=\"例\"\u003eSamsung, Apple\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"フィールド\"\u003eカテゴリ・商品タイプ\u003c/td\u003e\n\u003ctd data-label=\"推奨優先順位\"\u003e中以上\u003c/td\u003e\n\u003ctd data-label=\"例\"\u003e果物、ランニングシューズ\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"フィールド\"\u003e主要属性\u003c/td\u003e\n\u003ctd data-label=\"推奨優先順位\"\u003e中以上\u003c/td\u003e\n\u003ctd data-label=\"例\"\u003e容量、色、規格、互換機種\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"フィールド\"\u003e同義語・別称・品種・タグ\u003c/td\u003e\n\u003ctd data-label=\"推奨優先順位\"\u003e中以上\u003c/td\u003e\n\u003ctd data-label=\"例\"\u003eジョギングシューズ↔ランニングシューズ、りんご↔ふじ\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"フィールド\"\u003e詳細説明\u003c/td\u003e\n\u003ctd data-label=\"推奨優先順位\"\u003e低い\u003c/td\u003e\n\u003ctd data-label=\"例\"\u003e長い説明のノイズを減らすため低い重み\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"フィールド\"\u003eレビュー本文\u003c/td\u003e\n\u003ctd data-label=\"推奨優先順位\"\u003e選択的\u003c/td\u003e\n\u003ctd data-label=\"例\"\u003e品質・スパム・個人情報の検討後、限定的に使用\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003e韓国語検索では、分かち書きの違い、字母分離、英語・ハングルのブランド表記、数字と単位、複合名詞も考慮しなければならない。たとえば「에어팟프로2」、「에어팟 프로 2」、「AirPods Pro 2」が同じ商品群につながるように正規化ルールを置く。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E6%8E%A8%E5%A5%A8%E6%A4%9C%E7%B4%A2%E3%83%91%E3%82%A4%E3%83%97%E3%83%A9%E3%82%A4%E3%83%B3\" class=\"anchor\" id=\"推奨検索パイプライン\"\u003e\u003c/a\u003e推奨検索パイプライン\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e入力長と許容文字を検証する。\u003c/li\u003e\n\u003cli\u003e大文字小文字、空白、特殊文字、単位を正規化する。\u003c/li\u003e\n\u003cli\u003e商品コードとの完全一致を先に確認する。\u003c/li\u003e\n\u003cli\u003eトークン化と形態・綴りの変形を適用する。\u003c/li\u003e\n\u003cli\u003e運営者が管理する同義語とカテゴリ辞書を拡張する。\u003c/li\u003e\n\u003cli\u003eテキスト検索で候補を探す。\u003c/li\u003e\n\u003cli\u003e必要なら意味検索を補助候補生成に使う。\u003c/li\u003e\n\u003cli\u003e販売・公開・規制状態をフィルタリングする。\u003c/li\u003e\n\u003cli\u003eオーガニックスコアを計算し、広告を別途結合する。\u003c/li\u003e\n\u003cli\u003e結果と診断情報を返す。\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e生成AIやベクトル検索を導入する場合でも、SKU、ブランド、モデル名のような完全一致を弱めてはいけない。ショッピング検索では、\u003cstrong\u003e正確検索 + テキスト関連度 + 選択的な意味検索\u003c/strong\u003eを組み合わせたハイブリッド方式が一般的に安全だ。AIがカタログにない商品、価格、在庫を作り上げて話さないように、すべての応答を実際の商品IDと現在データにつなぐ必要がある。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E7%B5%90%E6%9E%9C%E3%81%AA%E3%81%97%E7%94%BB%E9%9D%A2%E3%81%AF%E7%AC%AC%E4%BA%8C%E3%81%AE%E9%99%B3%E5%88%97%E6%A3%9A%E3%81%A7%E3%81%82%E3%82%8B\" class=\"anchor\" id=\"結果なし画面は第二の陳列棚である\"\u003e\u003c/a\u003e結果なし画面は第二の陳列棚である\u003c/h3\u003e\n\u003cp\u003e検索結果がない時、空画面だけを見せてはいけない。ただし、関連のない人気商品を検索結果であるかのように混ぜてもいけない。\u003c/p\u003e\n\u003cp\u003e推奨構成は次のとおりだ。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eユーザーが入力した検索語をそのまま見せ、一致商品がないことを明確に案内\u003c/li\u003e\n\u003cli\u003e誤字修正候補と同義語提案\u003c/li\u003e\n\u003cli\u003eフィルターによって0件になった場合、削除可能なフィルターを案内\u003c/li\u003e\n\u003cli\u003e範囲を広げた結果を別ラベルで提示\u003c/li\u003e\n\u003cli\u003e関連カテゴリ、代替商品、全体人気商品を区分して露出\u003c/li\u003e\n\u003cli\u003e再入荷・入店リクエストまたはカスタマーセンターへの接続\u003c/li\u003e\n\u003cli\u003e結果のない検索イベントを管理者分析に記録\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e「結果なし」と「フィルター適用後なし」は別の問題だ。元の候補はあったが価格・色フィルターで0件になった場合はフィルター緩和が最も有用で、カタログ自体に商品がないなら調達データとして活用すべきだ。\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#5-%E6%A4%9C%E7%B4%A2%E5%B1%A5%E6%AD%B4%E5%B8%82%E5%A0%B4%E8%AA%BF%E6%9F%BB%E3%83%87%E3%83%BC%E3%82%BF%E3%81%A8%E5%80%8B%E4%BA%BA%E6%83%85%E5%A0%B1%E3%82%92%E4%B8%80%E7%B7%92%E3%81%AB%E7%AE%A1%E7%90%86%E3%81%99%E3%82%8B\" class=\"anchor\" id=\"5-検索履歴市場調査データと個人情報を一緒に管理する\"\u003e\u003c/a\u003e5. 検索履歴：市場調査データと個人情報を一緒に管理する\u003c/h2\u003e\n\u003cp\u003e結果のない検索語は、顧客が探したが購入できなかった需要を示す。人気検索語は陳列と在庫計画に役立ち、検索後のクリック・カート・購入フローは検索品質を評価する核心指標になる。\u003c/p\u003e\n\u003cp\u003eしかし「検索語と回数だけ保存すれば常に個人情報ではない」と断定することはできない。検索語自体に電話番号、注文番号、名前、健康・宗教・性生活のような敏感な内容が入ることがあり、アカウント・IP・機器情報と結合されると個人を識別または追跡する可能性が大きくなる。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E6%8E%A8%E5%A5%A8%E5%8F%8E%E9%9B%86%E9%A0%85%E7%9B%AE\" class=\"anchor\" id=\"推奨収集項目\"\u003e\u003c/a\u003e推奨収集項目\u003c/h3\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003e区分\u003c/th\u003e\n\u003cth\u003e推奨処理\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"区分\"\u003e正規化された検索語\u003c/td\u003e\n\u003ctd data-label=\"推奨処理\"\u003e日・時間単位で集計し、原文の保管期間を最小化\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"区分\"\u003e結果数\u003c/td\u003e\n\u003ctd data-label=\"推奨処理\"\u003e0件 여부と区間値を保存\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"区分\"\u003e適用フィルター・並び替え\u003c/td\u003e\n\u003ctd data-label=\"推奨処理\"\u003e検索品質分析に必要な範囲だけ保存\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"区分\"\u003eクリック・カート・購入\u003c/td\u003e\n\u003ctd data-label=\"推奨処理\"\u003e可能なら検索語単位の集計指標として保存\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"区分\"\u003eセッション連携\u003c/td\u003e\n\u003ctd data-label=\"推奨処理\"\u003e必要な時だけ短寿命のランダム識別子を使用\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"区分\"\u003e会員ID・IP・正確な位置\u003c/td\u003e\n\u003ctd data-label=\"推奨処理\"\u003e明確な目的と根拠がなければ検索分析ログから除外\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"区分\"\u003e原文内の個人情報\u003c/td\u003e\n\u003ctd data-label=\"推奨処理\"\u003eメール・電話番号・注文番号パターンをマスキングまたは廃棄\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eハッシュ化された会員IDも自動的に匿名情報になるわけではない。再び特定ユーザーと結び付けられるなら、仮名情報または個人情報として扱わなければならない。保管期間も一律に定めず、目的、分析周期、セキュリティリスクを基準に原文と集計データそれぞれに設定する。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E7%AE%A1%E7%90%86%E8%80%85%E3%83%80%E3%83%83%E3%82%B7%E3%83%A5%E3%83%9C%E3%83%BC%E3%83%89%E3%81%AB%E5%BF%85%E8%A6%81%E3%81%AA%E6%8C%87%E6%A8%99\" class=\"anchor\" id=\"管理者ダッシュボードに必要な指標\"\u003e\u003c/a\u003e管理者ダッシュボードに必要な指標\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e検索量と固有検索語数\u003c/li\u003e\n\u003cli\u003e結果なし比率\u003c/li\u003e\n\u003cli\u003e検索結果クリック率\u003c/li\u003e\n\u003cli\u003e検索後カート率と購入コンバージョン率\u003c/li\u003e\n\u003cli\u003e検索語修正率とフィルター解除率\u003c/li\u003e\n\u003cli\u003e品切れ商品露出比率\u003c/li\u003e\n\u003cli\u003e上位結果の集中度とブランド多様性\u003c/li\u003e\n\u003cli\u003e広告とオーガニック結果の成果を分離した指標\u003c/li\u003e\n\u003cli\u003e検索インデックスの鮮度およびインデックス失敗件数\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e低頻度の原文検索語は個人情報が含まれる可能性があるため、最小集計基準を超えた項目だけを運営者画面に露出する方法も有用だ。\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#%E5%AE%9F%E8%B7%B5%E3%83%97%E3%83%AD%E3%83%B3%E3%83%97%E3%83%88%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%E3%82%92%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95\" class=\"anchor\" id=\"実践プロンプトポリシーをコードに変換する方法\"\u003e\u003c/a\u003e実践プロンプト：ポリシーをコードに変換する方法\u003c/h2\u003e\n\u003cp\u003e開発用語を多く使うより、運用ルールを明確に書くことが重要だ。次のテンプレートをサービス状況に合わせて埋め、AIに提供できる。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003e私たちのショッピングモールの商品検索機能を設計して実装して。\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e1. 露出資格\n\u003c/span\u003e\u003cspan\u003e- 販売中で公開状態であり、規制ブロックがない商品のみ検索候補に含める。\n\u003c/span\u003e\u003cspan\u003e- 一時品切れは表示するが、同一条件の在庫商品より後ろに送る。\n\u003c/span\u003e\u003cspan\u003e- 販売終了と一時販売停止は検索・カテゴリで隠す。\n\u003c/span\u003e\u003cspan\u003e- 販売終了商品の直接URLには終了案内と代替商品を見せ、購入ボタンは削除する。\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e2. 基本並び替え\n\u003c/span\u003e\u003cspan\u003e- 検索語関連度を最も大きく反映する。\n\u003c/span\u003e\u003cspan\u003e- 直近28日のコンバージョン率、直近14日の販売速度、補正評価、配送品質を反映する。\n\u003c/span\u003e\u003cspan\u003e- 各重みは設定ファイルまたは管理者ポリシーで変更可能にする。\n\u003c/span\u003e\u003cspan\u003e- 同点はproduct_id降順で安定的に並べ替える。\n\u003c/span\u003e\u003cspan\u003e- 広告商品はオーガニックスコアに混ぜず、別スロットに入れて「広告」と表示する。\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e3. 一覧探索\n\u003c/span\u003e\u003cspan\u003e- 一度に40個ずつ返す。\n\u003c/span\u003e\u003cspan\u003e- 検索語、並び替え、フィルター、ページまたはカーソルをURLから復元できるようにする。\n\u003c/span\u003e\u003cspan\u003e- 詳細ページから戻ると、一覧とスクロール位置を復元する。\n\u003c/span\u003e\u003cspan\u003e- 大規模結果はカーソルページネーションを使用する。\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e4. 検索範囲\n\u003c/span\u003e\u003cspan\u003e- SKUとモデル名の完全一致を最優先にする。\n\u003c/span\u003e\u003cspan\u003e- 商品名、ブランド、カテゴリ、属性、同義語タグを検索する。\n\u003c/span\u003e\u003cspan\u003e- 韓国語の分かち書きと英語・ハングルのブランド表記ゆれを処理する。\n\u003c/span\u003e\u003cspan\u003e- 結果がなければ、誤字提案、フィルター緩和、関連カテゴリ、代替おすすめを区分して見せる。\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e5. 検索ログ\n\u003c/span\u003e\u003cspan\u003e- 正規化検索語、時間区間、結果数、フィルター、集計クリック・購入指標だけを基本保存する。\n\u003c/span\u003e\u003cspan\u003e- 会員IDとIPは検索分析ログに保存しない。\n\u003c/span\u003e\u003cspan\u003e- メール、電話番号、注文番号の形式はマスキングする。\n\u003c/span\u003e\u003cspan\u003e- 原文保管期間と集計保管期間を設定値として分離する。\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e6. 技術要件\n\u003c/span\u003e\u003cspan\u003e- データモデル、API契約、検索インデックス、同期方式、例外処理、管理者指標を一緒に設計する。\n\u003c/span\u003e\u003cspan\u003e- 実際の照会パターンに合うインデックスを提案し、実行計画の確認方法を説明する。\n\u003c/span\u003e\u003cspan\u003e- 検索インデックス遅延状況でも、カートと決済段階で状態・価格・在庫を再検証する。\n\u003c/span\u003e\u003cspan\u003e- 単体テスト、統合テスト、性能テスト、アクセシビリティテストのシナリオを作成する。\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e実装を始める前に、私が決めていないポリシーのうち結果に影響する決定があれば先に質問し、任意に決めた仮定は別リストで表示して。\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e最後の文は、AIを単純なコード生成器から要件検討パートナーへ変える核心的な仕掛けだ。ただし質問を受けるだけで終わらせず、確定した答えをポリシー文書とテスト条件に反映しなければならない。\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#%E5%AE%9F%E8%A3%85%E8%A8%AD%E8%A8%88%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%E3%82%92%E3%83%87%E3%83%BC%E3%82%BF%E3%81%A8api%E3%81%AB%E5%9B%BA%E5%AE%9A%E3%81%99%E3%82%8B\" class=\"anchor\" id=\"実装設計ポリシーをデータとapiに固定する\"\u003e\u003c/a\u003e実装設計：ポリシーをデータとAPIに固定する\u003c/h2\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E3%83%87%E3%83%BC%E3%82%BF%E3%83%A2%E3%83%87%E3%83%AB%E4%BE%8B\" class=\"anchor\" id=\"データモデル例\"\u003e\u003c/a\u003eデータモデル例\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003eproducts\n\u003c/span\u003e\u003cspan\u003e- product_id\n\u003c/span\u003e\u003cspan\u003e- sales_status\n\u003c/span\u003e\u003cspan\u003e- stock_status\n\u003c/span\u003e\u003cspan\u003e- visibility_status\n\u003c/span\u003e\u003cspan\u003e- compliance_status\n\u003c/span\u003e\u003cspan\u003e- brand_id\n\u003c/span\u003e\u003cspan\u003e- category_id\n\u003c/span\u003e\u003cspan\u003e- searchable_name\n\u003c/span\u003e\u003cspan\u003e- search_tags\n\u003c/span\u003e\u003cspan\u003e- price\n\u003c/span\u003e\u003cspan\u003e- inventory_quantity\n\u003c/span\u003e\u003cspan\u003e- ranking_feature_version\n\u003c/span\u003e\u003cspan\u003e- updated_at\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e一つのフィールドに複数の意味を入れない。たとえば\u003ccode\u003estatus = 1\u003c/code\u003eだけを置くと、販売可能、公開可能、在庫あり、規制通過のうち何を意味するのか分からない。状態遷移も表で管理し、下書きから販売中へ、販売中から終了へ移動する時に必要な検収とイベントを定義する。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#api%E5%BF%9C%E7%AD%94%E3%81%AB%E5%90%AB%E3%82%81%E3%82%8B%E6%83%85%E5%A0%B1\" class=\"anchor\" id=\"api応答に含める情報\"\u003e\u003c/a\u003eAPI応答に含める情報\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e正規化された検索語\u003c/li\u003e\n\u003cli\u003e適用された並び替えとフィルター\u003c/li\u003e\n\u003cli\u003e結果群と次カーソル\u003c/li\u003e\n\u003cli\u003e結果数または概算結果数\u003c/li\u003e\n\u003cli\u003e品切れ・販売状態バッジ\u003c/li\u003e\n\u003cli\u003e広告 여부と広告表示文言\u003c/li\u003e\n\u003cli\u003e誤字修正・検索範囲拡大の有無\u003c/li\u003e\n\u003cli\u003e検索ポリシーバージョンと追跡用リクエストID\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e内部デバッグ情報である生スコアと事業上敏感な重みを顧客APIにそのまま露出する必要はない。その代わり、運営者がリクエストIDで順位算定経路を再現できなければならない。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9%E3%81%AF%E5%AE%9F%E9%9A%9B%E3%81%AE%E7%85%A7%E4%BC%9A%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E3%81%AB%E5%90%88%E3%82%8F%E3%81%9B%E3%81%A6%E8%A8%AD%E8%A8%88%E3%81%99%E3%82%8B\" class=\"anchor\" id=\"インデックスは実際の照会パターンに合わせて設計する\"\u003e\u003c/a\u003eインデックスは実際の照会パターンに合わせて設計する\u003c/h3\u003e\n\u003cp\u003e一般的に、状態フィルターと並び替えに使う列にはB-tree系インデックスを、全文検索文書には転置インデックス系を検討する。PostgreSQLなら\u003ccode\u003etsvector\u003c/code\u003eとGINインデックス、類似文字列検索が必要なら\u003ccode\u003epg_trgm\u003c/code\u003eを使用できる。外部検索エンジンを使っても原則は同じだ。\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003eCREATE INDEX \u003c/span\u003e\u003cspan\u003eidx_products_visibility\n\u003c/span\u003e\u003cspan\u003eON\u003c/span\u003e\u003cspan\u003e products (visibility_status, sales_status, compliance_status);\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eCREATE INDEX \u003c/span\u003e\u003cspan\u003eidx_products_search_document\n\u003c/span\u003e\u003cspan\u003eON\u003c/span\u003e\u003cspan\u003e products USING GIN (search_document);\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eインデックスを多く作るほど書き込みコストと保存領域も増える。予想だけで決めず、実際のクエリとデータ分布で\u003ccode\u003eEXPLAIN ANALYZE\u003c/code\u003e、スロークエリログ、負荷テストを確認する。商品数が増える時は、平均応答時間よりp95・p99遅延、タイムアウト率、インデックスの鮮度を一緒に見る。\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#%E7%94%9F%E6%88%90ai%E3%82%92%E4%BB%98%E3%81%91%E3%82%8B%E6%99%82%E3%81%AB%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E5%AE%89%E5%85%A8%E8%A3%85%E7%BD%AE\" class=\"anchor\" id=\"生成aiを付ける時に追加する安全装置\"\u003e\u003c/a\u003e生成AIを付ける時に追加する安全装置\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e商品の存在有無、価格、在庫、配送日はカタログAPI結果のみ使用\u003c/li\u003e\n\u003cli\u003eモデルが作った検索語拡張は原文とともに記録し、過度な拡張を制限\u003c/li\u003e\n\u003cli\u003e正確なSKU・モデル名検索は意味検索より優先\u003c/li\u003e\n\u003cli\u003e販売停止・リコールフィルターはAI検索候補にも同一に適用\u003c/li\u003e\n\u003cli\u003e回答に露出した商品IDと根拠フィールドを追跡\u003c/li\u003e\n\u003cli\u003eモデル失敗時は一般テキスト検索へフォールバック\u003c/li\u003e\n\u003cli\u003eプロンプト注入性の文言が商品説明やレビューにあっても、システム指示として実行しないよう分離\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\n\u003ca href=\"#%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E5%89%8D%E3%81%AE%E5%8F%97%E3%81%91%E5%85%A5%E3%82%8C%E3%83%86%E3%82%B9%E3%83%88\" class=\"anchor\" id=\"リリース前の受け入れテスト\"\u003e\u003c/a\u003eリリース前の受け入れテスト\u003c/h2\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eシナリオ\u003c/th\u003e\n\u003cth\u003e期待結果\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"シナリオ\"\u003e昨日登録した品切れ商品と継続的に売れている在庫商品が一緒にある\u003c/td\u003e\n\u003ctd data-label=\"期待結果\"\u003e品切れ商品が基本上位を占めない\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"シナリオ\"\u003e販売終了商品を検索\u003c/td\u003e\n\u003ctd data-label=\"期待結果\"\u003e一覧にはなく、直接URLには終了案内と購入不可状態が表示される\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"シナリオ\"\u003e広告商品が1位スロットに露出\u003c/td\u003e\n\u003ctd data-label=\"期待結果\"\u003eカードで広告であることを即座に識別可能\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"シナリオ\"\u003eフィルター適用後0件\u003c/td\u003e\n\u003ctd data-label=\"期待結果\"\u003eフィルター削除提案と元の候補の存在有無を案内\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"シナリオ\"\u003e「ランニングシューズ」、「ジョギングシューズ」検索\u003c/td\u003e\n\u003ctd data-label=\"期待結果\"\u003e同義語ポリシーに従って関連商品群が一貫して露出\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"シナリオ\"\u003e詳細を開いてから戻る\u003c/td\u003e\n\u003ctd data-label=\"期待結果\"\u003e検索語、フィルター、並び替え、一覧、スクロール位置が復元\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"シナリオ\"\u003e同一スコアの商品が複数ある\u003c/td\u003e\n\u003ctd data-label=\"期待結果\"\u003eページ移動を繰り返しても重複・欠落なく固定順序を維持\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"シナリオ\"\u003e検索インデックスに在庫が残っている\u003c/td\u003e\n\u003ctd data-label=\"期待結果\"\u003eカート・決済段階で最新在庫によりブロック\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"シナリオ\"\u003e検索語にメール・電話番号が含まれる\u003c/td\u003e\n\u003ctd data-label=\"期待結果\"\u003eログ保存前にマスキングまたは廃棄\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"シナリオ\"\u003e大量同時検索\u003c/td\u003e\n\u003ctd data-label=\"期待結果\"\u003e定義したp95遅延とエラー率基準を満たす\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"シナリオ\"\u003e管理者検索語ダッシュボード\u003c/td\u003e\n\u003ctd data-label=\"期待結果\"\u003e低頻度の原文と敏感パターンがそのまま露出されない\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"シナリオ\"\u003eランキング重み変更\u003c/td\u003e\n\u003ctd data-label=\"期待結果\"\u003eポリシーバージョン、承認者、適用時刻、前後指標が記録される\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003ch2\u003e\n\u003ca href=\"#%E9%81%8B%E7%94%A8%E6%AE%B5%E9%9A%8E%E3%81%A7%E7%B9%B0%E3%82%8A%E8%BF%94%E3%81%99%E3%81%B9%E3%81%8D%E3%81%93%E3%81%A8\" class=\"anchor\" id=\"運用段階で繰り返すべきこと\"\u003e\u003c/a\u003e運用段階で繰り返すべきこと\u003c/h2\u003e\n\u003cp\u003e検索は一度開発して終わる機能ではない。商品構成、季節、プロモーション、顧客表現が変わるため、次の周期を運用プロセスとして置く。\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e毎週、結果のない検索語と急増検索語を検討する。\u003c/li\u003e\n\u003cli\u003e同義語とカテゴリマッピングを承認手続きで更新する。\u003c/li\u003e\n\u003cli\u003e品切れ露出率、クリック率、コンバージョン率、検索語修正率を一緒に見る。\u003c/li\u003e\n\u003cli\u003e重み変更はオフライン評価と限定的なA/Bテスト後に拡大する。\u003c/li\u003e\n\u003cli\u003e広告・自社商品・オーガニック結果の露出比率を別途監査する。\u003c/li\u003e\n\u003cli\u003e検索ログの保管期間、アクセス権限、マスキング失敗を定期点検する。\u003c/li\u003e\n\u003cli\u003e実際のトラフィックでインデックス使用率と遅いクエリを再検討する。\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2\u003e\n\u003ca href=\"#%E7%B5%90%E8%AB%96\" class=\"anchor\" id=\"結論\"\u003e\u003c/a\u003e結論\u003c/h2\u003e\n\u003cp\u003eAIは検索APIと画面を素早く作ることができるが、どの商品に顧客の前に立つ資格があるのかは決められない。実戦型ショッピングモール検索は、\u003cstrong\u003e並び替えの基本値、商品状態、一覧探索、検索範囲と結果なし処理、検索ログ\u003c/strong\u003eを先にポリシーとして確定し、そのポリシーをデータモデル、API、インデックス、テスト、管理者指標に一貫して反映した時に完成する。\u003c/p\u003e\n\u003cp\u003eコーディングは自動化できても、陳列原則と責任は自動では生まれない。最も良いAIプロンプトは長く難しい開発用語ではなく、運営者がすでに決めたポリシーと、まだ決めていない質問を明確に区分した文書である。\u003c/p\u003e\n","tags":["AI開発","ECサイト検索","検索ポリシー","EC運営","検索UX"],"faqs":[{"question":"ショッピングモール検索のデフォルトの並び順を最新登録順にすると、なぜ問題になるのですか？","answer":"最新登録順は登録時刻だけを反映するため、在庫切れ、検収前、販売性の低い商品が上位を占める可能性があります。検索語との関連度と販売可能な状態を先に保証したうえで、コンバージョン率、販売速度、評価の信頼度といったシグナルを組み合わせるほうが安全です。"},{"question":"おすすめ順の重みはAIが自動で決めるようにしてもよいですか？","answer":"AIは候補となる数式を提案し、シミュレーションコードを作ることはできますが、目標と許容範囲は運営者が決める必要があります。重みは過去データでオフライン評価し、限定的なA/Bテストと中止条件を経て変更すべきです。"},{"question":"在庫切れ商品は検索結果から完全に非表示にすべきですか？","answer":"再入荷の可能性があり、顧客が再入荷通知を利用できるなら、完全削除よりも在庫切れバッジと下位配置が有用です。長期在庫切れや供給停止商品は別途基準で非表示にし、購入可能かどうかはカートと決済段階で再度検証する必要があります。"},{"question":"販売終了商品の詳細ページは404でなくすのが正しいですか？","answer":"常にそうとは限りません。既存リンク、注文履歴、安全に関する告知、代替商品の案内としての価値があるなら、詳細ページを維持しつつ、販売終了と購入不可の状態を明確に表示できます。コンテンツ価値がまったくなく、恒久的な削除が適切な場合には、404または410ポリシーを検討します。"},{"question":"ページネーションと無限スクロールのうち、ショッピングモールにより適した方式はどれですか？","answer":"比較と再訪問が重要な検索結果には、数字のページネーションや「もっと見る」方式が一般的に管理しやすいです。無限スクロールを使うなら、URL状態、戻る操作、スクロール位置、アクセシビリティ、エラー復元を完成させる必要があり、発見型フィードにより適しています。"},{"question":"AI検索やベクトル検索を導入すれば、既存のテキスト検索は不要ですか？","answer":"必要です。SKU、モデル名、ブランド、規格のように完全一致が重要なショッピング検索では、テキスト検索が基盤であるべきです。意味検索は表現が異なる候補を広げる補助レイヤーとして使用し、実際の商品IDと在庫データに接続する必要があります。"},{"question":"検索語と検索回数だけを保存すれば、個人情報の問題はありませんか？","answer":"自動的に安全だとは見なせません。検索語にメールアドレス、電話番号、注文番号、またはセンシティブな内容が含まれる可能性があり、他の識別子と結合されると個人を追跡できる可能性があります。目的の最小化、マスキング、アクセス制御、原文と集計データの分離保管が必要です。"},{"question":"広告商品をおすすめ順の上位に入れてもよいですか？","answer":"広告表示そのものよりも、通常のオーガニックなおすすめと誤認されないように設計することが重要です。広告候補とオーガニック候補を分離し、商品カードで即座に識別できる表示を提供し、広告表示ルールと成果指標を別々に管理する必要があります。"},{"question":"商品検索にはどのようなデータベースインデックスが必要ですか？","answer":"正解は実際のクエリとデータ分布によって異なります。ステータスフィルターと並び替えにはB-tree系、全文検索にはGINのような転置インデックス、類似文字列検索にはtrigram系を検討でき、実行計画と負荷テストで効果を確認する必要があります。"},{"question":"検索品質はどの指標で評価すべきですか？","answer":"結果なし率、検索結果クリック率、検索後のカート投入率と購入コンバージョン率、検索語修正率、在庫切れ表示率をあわせて見る必要があります。これにp95遅延、タイムアウト率、インデックスの鮮度を組み合わせてこそ、品質と性能を同時に評価できます。"},{"question":"検索ログはどのくらい長く保管すべきですか？","answer":"すべてのサービスに適用される単一の期間はありません。原文の検索語は分析に必要な最小期間だけ保持し、長期トレンドは個人情報リスクを下げた集計データとして保管する方式がよいです。保管目的、削除周期、アクセス権限を個人情報処理方針と内部ポリシーに一致させる必要があります。"},{"question":"AIに実装前に質問させるための最も重要な文は何ですか？","answer":"「実装を始める前に、私が決めていないポリシーのうち結果に影響する決定があれば先に質問し、任意に決めた仮定は別の一覧として表示して」と指示できます。その後、回答をポリシー文書、API契約、テスト条件に反映してこそ効果があります。"}],"sources":[{"url":"https://www.ftc.go.kr/www/selectBbsNttView.do?bordCd=3\u0026key=12\u0026nttSn=43448\u0026pageIndex=1\u0026pageUnit=10\u0026rltnNttSn=46624\u0026searchCnd=all\u0026searchViolt=0604","title":"公正取引委員会：クーパンおよびCPLBの偽計による顧客誘引行為に関する制裁","type":"source"},{"url":"https://www.lawtimes.co.kr/news/articleView.html?idxno=218796","title":"法律新聞：クーパン・公取委訴訟、ネイバーショッピング事件が争点化","type":"source"},{"url":"https://www.law.go.kr/LSW/lsInfoP.do?lsId=002011","title":"国家法令情報センター：表示・広告の公正化に関する法律","type":"source"},{"url":"https://case.ftc.go.kr/ocp/co/openDocView.do?docCnvrMnNo=12808\u0026docId=20221229104156671154\u0026docTy=LTFR\u0026id=OCPLTFR20140759018192","title":"公正取引委員会オンライン事件処理：キーワード広告表示関連議決2014-103","type":"source"},{"url":"https://www.ftc.go.kr/www/selectBbsNttView.do?bordCd=3\u0026key=12\u0026nttSn=46006\u0026pageIndex=2\u0026pageUnit=10\u0026rltnNttSn=37048\u0026searchCnd=all\u0026searchCtgry=01%2C02\u0026searchKrwd=%EA%B4%91%EA%B3%A0\u0026searchViolt=0609","title":"公正取引委員会：高価な有名商品販売プラットフォームの表示広告法および電子商取引法違反行為に対する制裁","type":"source"},{"url":"https://www.law.go.kr/LSW/lsInfoP.do?ancYnChk=0\u0026lsId=011357","title":"国家法令情報センター：個人情報保護法","type":"source"},{"url":"https://baymard.com/learn/ecommerce-ux-best-practices","title":"Baymard Institute：Data-Driven Ecommerce UX Best Practices","type":"source"},{"url":"https://developers.google.com/search/docs/specialty/ecommerce/pagination-and-incremental-page-loading","title":"Google Search Central：Pagination and Incremental Page Loading","type":"source"},{"url":"https://www.postgresql.org/docs/current/textsearch.html","title":"PostgreSQL Documentation：Full Text Search","type":"source"},{"url":"https://www.postgresql.org/docs/current/textsearch-indexes.html","title":"PostgreSQL Documentation：Preferred Index Types for Text Search","type":"source"},{"url":"https://www.postgresql.org/docs/current/pgtrgm.html","title":"PostgreSQL Documentation：pg_trgm","type":"source"}],"images":[{"id":240,"url":"https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MjM1NSwicHVyIjoiYmxvYl9pZCJ9fQ==--6c0b755d9bc5bce8a57d0306acd05a2302fe176e/ChatGPT%20Image%202026%E1%84%82%E1%85%A7%E1%86%AB%207%E1%84%8B%E1%85%AF%E1%86%AF%2021%E1%84%8B%E1%85%B5%E1%86%AF%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2002_29_49.webp","is_representative":true,"generation_method":"upload","mime_type":"image/webp","original_filename":"ChatGPT Image 2026년 7월 21일 오전 02_29_49.png","translations":{"ko":{"alt":"AI 네트워크와 상품 검색 화면, 정책 체크카드, 분석 대시보드가 결합된 쇼핑몰 검색 설계 일러스트","caption":"AI 쇼핑몰 검색을 구현하기 전에 정렬, 상품 상태, 탐색, 검색 범위, 데이터 정책을 설계하는 과정을 보여준다.","description":null},"en":{"alt":"AI network, product search interface, policy checklist cards, and analytics dashboard for e-commerce search planning","caption":"The illustration shows the planning of ranking, product status, navigation, search scope, and data policies before building AI-powered e-commerce search.","description":null},"ja":{"alt":"AIネットワーク、商品検索画面、ポリシーカード、分析ダッシュボードを組み合わせたEC検索設計","caption":"AI搭載のEC検索を構築する前に、並び順、商品状態、ナビゲーション、検索範囲、データ方針を設計する様子を示している。","description":null},"es":{"alt":"Red de IA, interfaz de búsqueda de productos, tarjetas de políticas y panel analítico para comercio electrónico","caption":"La ilustración muestra cómo definir el orden, el estado de los productos, la navegación, el alcance de búsqueda y la política de datos antes de crear un buscador con IA.","description":null},"id":{"alt":"Jaringan AI, antarmuka pencarian produk, kartu kebijakan, dan dasbor analitik untuk perencanaan pencarian toko online","caption":"Ilustrasi ini menunjukkan perencanaan peringkat, status produk, navigasi, cakupan pencarian, dan kebijakan data sebelum membangun pencarian e-commerce berbasis AI.","description":null},"pt":{"alt":"Rede de IA, interface de busca de produtos, cartões de políticas e painel analítico para comércio eletrônico","caption":"A ilustração mostra o planejamento de ordenação, status dos produtos, navegação, escopo da busca e política de dados antes de criar uma busca de e-commerce com IA.","description":null},"zh-hant":{"alt":"結合AI網路、商品搜尋介面、政策檢查卡與分析儀表板的電商搜尋規劃圖","caption":"此圖呈現在建立AI電商搜尋前，規劃排序、商品狀態、瀏覽方式、搜尋範圍與資料政策的過程。","description":null}}},{"id":241,"url":"https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MjM2MiwicHVyIjoiYmxvYl9pZCJ9fQ==--7aa0dfb3a548f3bdfe5cf4f73b74b387fe8da178/ChatGPT%20Image%202026%E1%84%82%E1%85%A7%E1%86%AB%207%E1%84%8B%E1%85%AF%E1%86%AF%2021%E1%84%8B%E1%85%B5%E1%86%AF%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2002_32_48.webp","is_representative":false,"generation_method":"upload","mime_type":"image/webp","original_filename":"ChatGPT Image 2026년 7월 21일 오전 02_32_48.png","translations":{"ko":{"alt":"상품 의미 연결망, 대체 추천 화면, 보안 데이터 저장소로 구성된 AI 쇼핑 검색 설계도","caption":"상품 속성과 동의어를 연결하고 검색 결과가 없을 때 대안을 추천하며 로그를 안전하게 집계하는 구조를 보여준다.","description":null},"en":{"alt":"AI shopping search map with semantic product links, fallback recommendations, and secure data storage","caption":"The illustration shows product attributes and synonyms being connected, alternative items suggested for empty results, and search logs aggregated securely.","description":null},"ja":{"alt":"商品意味ネットワーク、代替推薦画面、安全なデータ保存で構成されたAIショッピング検索設計","caption":"商品属性や同義語を結び、検索結果がない場合に代替商品を提案し、検索ログを安全に集計する仕組みを示している。","description":null},"es":{"alt":"Mapa de búsqueda comercial con vínculos semánticos, recomendaciones alternativas y almacenamiento seguro de datos","caption":"La ilustración muestra cómo conectar atributos y sinónimos, recomendar productos cuando no hay resultados y agregar registros de búsqueda de forma segura.","description":null},"id":{"alt":"Peta pencarian belanja AI dengan relasi produk, rekomendasi alternatif, dan penyimpanan data aman","caption":"Ilustrasi ini menunjukkan hubungan atribut dan sinonim produk, rekomendasi saat hasil kosong, serta pengelompokan log pencarian secara aman.","description":null},"pt":{"alt":"Mapa de busca comercial com conexões semânticas, recomendações alternativas e armazenamento seguro de dados","caption":"A ilustração mostra atributos e sinônimos conectados, sugestões para buscas sem resultado e agregação segura dos registros de pesquisa.","description":null},"zh-hant":{"alt":"結合商品語意關聯、替代推薦與安全資料儲存的AI購物搜尋架構","caption":"此圖呈現商品屬性與同義詞連結、無結果時提供替代推薦，以及安全彙整搜尋紀錄的流程。","description":null}}}],"published_at":"2026-07-21T10:05:48+09:00","updated_at":"2026-07-21T10:05:55+09:00","license":"cc_by","translation_status":"reviewed","available_locales":["ko","en","ja","es"],"data_locales":["ko","en","ja","es","id","pt","zh-hant"],"url":"https://injoys.com/ja/articles/five-policies-before-ai-ecommerce-search-development"}