検索条件のデータ化

商品を1件登録すると、条件に合う特集のすべてに載ります。

宿、商品、記事など、対象が日々増えたり減ったりするサイトで、「温泉特集」「季節のおすすめ」のような切り口のページを増やしたいことがあります。

特集をページとして作り、対象を1件ずつ載せていくと、同じ情報の重複登録が始まります。新しい宿を1軒登録するたび、載せるべき特集を人が探して回ることになります。特集が増えるほど、載せ漏れと古い掲載が増えます。

特集に登録するのは、宿ではなく検索条件です。表示のとき、その条件で一覧を引きます。

宿を1軒登録すれば、条件に合うすべての特集に載ります。掲載をやめれば、すべての特集から消えます。特集を作る作業は、条件を決めることだけになります。

該当が無くなった条件は、結果がゼロのまま表示されないよう、候補から外します。

検索の相手は、writeWired上のコンテンツでも、他システムから受け取った別のデータベースでも、他システムのAPI経由でも構いません。条件をデータで持つ形は、検索先を選びません。

writeWiredでは、特集を、検索条件を持つコンテンツとして登録します。特集ページが表示されるとき、登録されている条件で商品が検索され、該当する一覧がはめ込まれて表示されます。

商品を1件登録すると、条件に合う特集のすべてに、次の表示から載ります。特集から外したいときは、商品側の値を直すか、特集側の条件を直します。

特集のフォームは、表示用の項目(テーマ・画像・リード)と、検索条件の項目の二層で作ります。

情報のマスタを一か所に保つためです。同じ宿が特集ごとに登録されていると、どれが最新か分からなくなります。

元のデータにない条件では検索できません。条件に使いたい項目が足りなければ、先に項目の設計に戻ります。

例えばこんな使い方

「季節のおすすめ」のような切り口の特集ページを、条件を登録するだけで何本でも作れます。特集のフォームは、たとえばこんな形です。

項目 種類 役割
特集タイトル 文字 表示用
メイン画像 画像 表示用
リード文 文字 表示用
対象の分類 選択 検索条件
対象のタグ 複数選択 検索条件
表示する件数 数字 検索条件

対象の商品が増えても減っても、特集側の手入れは要りません。

関連パターン

データ構造・モデル設計writeWiredの開発の考え方