コンテンツにスキップ

並び順変更コンポーネント

機能説明

並び順を変更するリンクを表示します。
識別子により表示バリエーションを選択し、見た目を変更することができます。
存在しないバリエーションやバリエーションが未指定の場合は type1 となります。

表示バリエーション
type1: プルダウン型
type2: リンクテキスト型
type3: ラジオボタン型

See the Pen this by BST developer (@bsearchtech)on CodePen.

設定方法

必須設定

Htmlの修正
<div data-[モード]="sortselector-type1"></div>
リソースファイルの作成

並び順リソースファイル

並び順リソースファイルは、並び順とその名称を定義するファイルです。

このリソースファイルは、デフォルトの並び順を決定したり、並び順コンポーネントで表示する並び順を決定するために使用されます。

注意

並び順リソースファイルは、並び順変更コンポーネントでの表示以外にも、デフォルトの並び順の決定のために必要です。
必ず 1 つ以上の並び順を定義した並び順リソースファイルを読み込んでください。
並び順が未定義の場合、並び順は「不定」となります。

sitesearchSortOrder という変数に、各値がハッシュになる配列を代入しているファイルを作成します。

コンポーネントや URL パラメータでソート順を指定しない場合、ハッシュの先頭のエントリで並び替えをします。

var sitesearchSortOrder =  [
  {"label": "一致順", "order": "wordweight:desc"},
  {"label": "タイトル順", "order": "title:asc"}
];

ハッシュは次のエントリを含みます。

  • label: 並び順変更コンポーネントで表示される表示用文字列
  • order: 実際に適用される並び順
    • 並び順のキーと asc (昇順) / desc (降順) をコロン (:) で連結した文字列
    • 並び順のキーは文字列として比較されるものと、数値として比較されるものがあります。
// 並び順 (昇順)
[キー]:asc

もしくは

// 並び順 (降順)
[キー]:desc

また、複数キーによる並び順を定義する場合、カンマ (,) で連結して記述します。最大 10 個まで可能です。

[キー]:asc,[キー]:desc

指定可能な並び順のキー

並び順に指定できるキーには、クロールされたデータに含まれた値と、クロールされたデータには含まれず、自動的に生成する値の 2 種類があります。

クロールされたデータに含まれるもの

キー 比較 備考
id 文字列 ID
title 文字列 タイトル
text 文字列 表示用文字列
sort 数値 ソート専用値
additional_textN 文字列 汎用文字列N (1 から 10 まで)
additional_sortN 数値 汎用ソートN (1 から 10 まで)
filetype 文字列 取得したコンテンツの種別
filesize 数値 取得したコンテンツのサイズ
domain 文字列 取得したコンテンツのドメイン
path 文字列 取得したコンテンツのパス
last_modified 数値 取得したコンテンツの最終更新日

クロールされたデータに含まれないもの (自動生成されるもの)

キー 比較 備考
wordweight 数値 検索されたキーワードとの適合度
clickweight 数値 検索結果のクリック数
wordscore1 数値 管理画面で「表示順位制御」機能を使用した際に発動する並び順
降順指定のみ有効
wordscore9 数値 検索されたキーワードと単語の完全一致により算出される並び順
降順指定のみ有効
score 数値 当社独自アルゴリズムで計算される並び順
降順指定のみ有効
モードが popfind 、sitesearch で可
item_scoreN 数値 Google Analytics との連携で取得した計測データ (1 から N まで)

補足

item_scoreN は Google Analytics 連携オプション の契約が必要です。
実際のキーは契約後にお伝えいたします。

並び順の種類

種類 説明
一致順 複数の項目での一致度合いにより決定する。
価格順 価格により決定する。
新着順 最終更新日時により決定する。

並び順は以下の判定を行って決定します。


  1. 定義した並び順のキーを優先順位の高いものから検索する。

  2. キーが合致した場合、条件に従って並べ替える。

  3. 同じ順番になるレコードが複数あった場合、1 と 2 の判定を行って並び順を確定させる。
  4. 複数キーが指定された場合、左のキーから順に 1 から 3 の判定を行う。

標準的な並び順

標準的な並び順としたい場合、以下の値を設定してください。

wordscore1:desc,wordweight:desc,clickweight:desc,wordscore9:desc

最終更新日の値

最終更新日は以下の優先順位の高いものから値を検索し、最初に検索できた値を使用します。
最終更新日はクロール時に決定します。

HTML
優先順位
1 meta 要素 pf:last_modified の値
2 meta 要素 date の値
3 JSON-LD の dateModified の値
4 JSON-LD の datePublished の値
5 Web サーバー の HTTP レスポンス の Last-Modified の値
PDF
優先順位
1 Web サーバー の HTTP レスポンス の Last-Modified の値

任意設定

表示用メッセージの変更

sitesearchMessage という変数に次のような指定を行うことで、表示文字列を変更することができます。

var sitesearchMessage = {
    sortOrderSelector: {
        label: '並び順',
    },    
};

キー名 デフォルト値 説明
label 並び順: 並び順変更コンポーネントのラベル
関連する設定パラメータの追加
var popfindConf = popfindConf || {};
popfindConf["data-[モード]"] = {
    uid: "[UID]",
    mode: "[モード]",
    inputId: "q",

    defaultOrder: '',
};
パラメータ名 データ型 デフォルト値 説明
defaultOrder 文字列 '' url, sitesearchSortOrder に指定されなかった場合、この値が適用されます。
リソースファイルの order で指定可能な値が設定できます。

DOM 構造

Dom

並び順変更コンポーネント

並び順変更コンポーネントは表示バリエーション毎に DOM 構造が異なります。
各バリエーションの指定方法について詳しくは「コンポーネントリファレンス」を参照してください。

type1

<div data-[モード]="sortselector" class="_[モード]_component">
  <div class="_sortorderselector _sortorderselector_type1">
    <div class="_label">並び順:</div>
    <select name="o">
      <!-- ここから繰り返し -->

      <option value="並び順リソースの値" selected="selected">
        並び順リソースの名前
      </option>
      <!-- 以下、並び順リソースファイルの内容に応じて並び順が表示される -->
      ...

      <!-- ここまで繰り返し -->
    </select>
  </div>
</div>

type2

<div data-[モード]="sortselector-type2" class="_[モード]_component">
  <div class="_sortorderselector _sortorderselector_type2">
    <div class="_label">並び順:</div>

    <!-- ここから繰り返し -->

    <div class="_sort _current">並び順リソースの名前</div>
    <!-- 以下、並び順リソースファイルの内容に応じて並び順が表示される -->
    <div class="_sort">
      <a href="..." onclick="...">並び順リソースの名前</a>
    </div>
    ...
    <!-- ここまで繰り返し -->
  </div>
</div>

type3

<div data-[モード]="sortselector-type3" class="_[モード]_component">
  <!-- ここから繰り返し -->

  <div class="_sortorderselector _sortorderselector_type3">
    <div class="_label">並び順:</div>
    <div class="_sort _current">
      <input
        type="radio"
        name="o"
        value="並び順リソースの値"
        onchange="..."
        checked="checked"
      />
      <label for="...">並び順リソースの名前</label>
    </div>
    <!-- 以下、並び順リソースファイルの内容に応じて並び順が表示される -->
    <div class="_sort">
      <input
        type="radio"
        id="..."
        name="o"
        value="並び順リソースの値"
        onchange="..."
      />
      <label for="...">並び順リソースの名前</label>
    </div>
    ...
    <!-- ここまで繰り返し -->
  </div>
</div>

サンプル

type1(省略時)

プルダウン型

See the Pen this by BST developer (@bsearchtech)on CodePen.

type2

リンクテキスト型

See the Pen this by BST developer (@bsearchtech)on CodePen.

type3

ラジオボタン型

See the Pen this by BST developer (@bsearchtech)on CodePen.