# MS ドキュメント | 属性定義
## 0. 目次
- [1. 属性定義の概要](#1-属性定義の概要)
- [1.1. 属性定義TSVフォーマット](#11-属性定義tsvフォーマット)
- [1.2. 属性定義TSV](#12-属性定義tsv)
- [1.3. 値型](#13-値型)
- [1.4. 属性定義における検索/置換文字列指定](#14-属性定義における検索置換文字列指定)
- [2. 基本定義](#2-基本定義)
- [2.0. 基本定義: (項目一覧)](#20-基本定義-項目一覧)
- [2.1. 基本定義: (data_type詳細)](#21-基本定義-data_type詳細)
- [2.2. 基本定義: データ前処理:有効データ選択 (data_preprocess_filters系統詳細)](#22-基本定義-データ前処理:有効データ選択-data_preprocess_filters系統詳細)
- [2.3. 基本定義: データ前処理:データ編集 (data_preprocess_replaces詳細)](#23-基本定義-データ前処理:データ編集-data_preprocess_replaces詳細)
- [3. 共通設定](#3-共通設定)
- [3.0. 共通設定: (項目一覧)](#30-共通設定-項目一覧)
- [4. 検索条件(絞り込み)設定](#4-検索条件絞り込み設定)
- [4.0. 検索条件(絞り込み)設定: (項目一覧)](#40-検索条件絞り込み設定-項目一覧)
- [4.1. 検索条件(絞り込み)設定: search_condition_order (検索コントロール順序指定)](#41-検索条件絞り込み設定-search_condition_order-検索コントロール順序指定)
- [4.2. 検索条件(絞り込み)設定: search_condition_type (検索コントロール種別指定)](#42-検索条件絞り込み設定-search_condition_type-検索コントロール種別指定)
- [4.3. 検索条件(絞り込み)設定: search_condition_step (step検索条件定義指定)](#43-検索条件絞り込み設定-search_condition_step-step検索条件定義指定)
- [4.4. 検索条件(絞り込み)設定: マスタなしドリルダウン search_condition_drilldown_level (ドリルダウンの詳細設定)](#44-検索条件絞り込み設定-マスタなしドリルダウン-search_condition_drilldown_level-ドリルダウンの詳細設定)
- [4.5. 検索条件(絞り込み)設定: マスタありドリルダウン](#45-検索条件絞り込み設定-マスタありドリルダウン)
- [4.6. 検索条件(絞り込み)設定: search_condition_slider_specs (値範囲スライダーの詳細設定)](#46-検索条件絞り込み設定-search_condition_slider_specs-値範囲スライダーの詳細設定)
- [5. 検索条件(並び順)設定](#5-検索条件並び順設定)
- [5.0. 検索条件(並び順)設定: (項目一覧)](#50-検索条件並び順設定-項目一覧)
- [5.1. 検索条件(並び順)設定例](#51-検索条件並び順設定例)
- [6. 検索結果表設定](#6-検索結果表設定)
- [6.0. 検索結果表設定: (項目一覧)](#60-検索結果表設定-項目一覧)
- [6.1. 検索結果表設定: search_result_table_label::js等 (カラムラベルのJS処理指定)](#61-検索結果表設定-search_result_table_labeljs等-カラムラベルのjs処理指定)
- [6.2. 検索結果表設定: search_result_table_label__<数値>等 (カラムラベルの階層指定)](#62-検索結果表設定-search_result_table_label__数値等-カラムラベルの階層指定)
- [6.3. 検索結果表設定: search_result_table_value::js等 (セル値のJS処理指定)](#63-検索結果表設定-search_result_table_valuejs等-セル値のjs処理指定)
- [7. 比較表設定](#7-比較表設定)
- [7.0. 比較表設定: (項目一覧)](#70-比較表設定-項目一覧)
- [7.1. 比較表設定: compare_table_label::js等 (カラムラベルのJS処理指定)](#71-比較表設定-compare_table_labeljs等-カラムラベルのjs処理指定)
- [7.2. 比較表設定: compare_table_value::js等 (セル値のJS処理指定)](#72-比較表設定-compare_table_valuejs等-セル値のjs処理指定)
- [8. カスタムオプション項目](#8-カスタムオプション項目)
- [9. 付録 A: 正規表現](#9-付録-a-正規表現)
- [9.1 付録 A: 正規表現(1): 基本](#91-付録-a-正規表現1-基本)
- [9.2 付録 A: 正規表現(2): 置換処理](#92-付録-a-正規表現2-置換処理)
- [9.3 付録 A: 正規表現(3): 置換処理による文字種変換/正規化(キャプチャ処理のMS拡張)](#93-付録-a-正規表現3-置換処理による文字種変換正規化キャプチャ処理のms拡張)
- [9.4 付録 A: 正規表現(4): 置換処理による他属性値の読み込み](#94-付録-a-正規表現4-置換処理による他属性値の読み込み)
- [10. 付録 B: 属性定義簡易表 (チートシート)](#10-付録-b-属性定義簡易表-チートシート)
# 1. 属性定義の概要
- @属性@とは、MSアイテム検索で検索対象の各アイテムの持つ情報項目のことです。 Ex) `アイテムID`, `商品名`, `価格`, `長さ`, ...
- @属性定義@とは、各アイテムがどの様な情報項目を持っているかを定義しておくものです。
- MSアイテム検索のシステムは、属性定義から、各情報項目のデータ型の種類や、検索条件・検索結果での表示の仕方を識別し、動作します。
- よって、属性定義次第で、検索条件の表示の仕方や、検索結果表での表示の仕方等を、様々に変えることが可能です。
- 属性定義は、 @属性定義TSV@ を記述して MSアイテム検索システムに登録します。
## 1.1 属性定義TSVフォーマット
- 属性定義ファイルは、 `TSV` 形式で作成します。文字コードは `UTF-8` とします。
- TSV形式は、Tab-Separated-Values形式の略で、タブ文字によって値が区切られたデータ形式です。下例参照。
- 各カラム値の中に、ダブルクォート(")、や改行を含む場合は、当該カラムをダブルクォート(")で括り、値中のダブルクォートは2つ重ねて記述します。
- Ex) 設定したいカラム値:「This is "MARS SCREEN".」 => 実際に記述する文字列:「"This is ""MARS SCREEN""."」
- 属性定義ファイル中では、行の先頭文字が `#` である場合、その行をコメント行として無視します。
### 1.1.1 TSVフォーマットの例
```
# コメント行('#'で始まる行は無視されます)
name 項目名01 項目名02 項目名03 項目名04 項目名05 項目名06
key item_id key_02 key_03 key_04 key_05 key_06
option1 設定値01_01 設定値01_02 設定値01_04
option2 設定値02_01 設定値02_02
option3 設定値03_01 設定値01_05
option4
option 設定値05_02
...
```
## 1.2 属性定義TSV
- 属性定義TSVの一般的な情報は前項の通り。
- 行規則
- データ1行目: 'name'行。アイテムデータの各属性の和名。使用可能文字: 任意の文字。
- データ2行目: 'key'行。カラム名。アイテムデータの各属性のキー値。使用可能文字: 半角英数、'_'(アンダースコア)、'-'(ハイフン)。
- データ3行目: 'data_type'行。アイテムデータの各属性のデータ型。
- データ3行目以降: 各種任意のオプション項目を指定。オプション項目の一覧は、[2-基本定義](#2-基本定義) 以後に記載。
| 章番号 | 項目 | 内容 |
|:--:|:---------------------------|:----------------------------------------------------------------------------|
| 2 | [基本定義](#2-基本定義) | データ型やデータの取り込み肩に関する基本設定。 |
| 3 | [共通設定](#3-共通設定) | 4章以降の各設定のデフォルト値等、各属性に関する共通基盤の設定。 |
| 4 | [検索条件(絞り込み)設定](#4-検索条件絞り込み設定) | 検索条件(絞り込み)に関する各種設定。 |
| 5 | [検索条件(並び順)設定](#4-検索条件並び順設定) | 検索条件(並び順)に関する各種設定。 |
| 6 | [検索結果表設定](#6-検索結果表設定) | 検索結果表での各属性の表示に関する各種設定。 |
| 6 | [比較表設定](#6-比較表設定) | 比較表での各属性の表示に関する各種設定。 |
| 8 | [カスタムオプション設定](#8-カスタムオプション設定) | システムが利用しない、任意の各種設定の指定方法。 |
- 列規則
- データ1列目: 'name'列。属性毎の 'オプションキー名' を指定。
- データ2列目以降: 属性毎の 'オプション値' を指定。
### 1.2.1 属性定義TSVファイルの例
```
##!EDITOR=TSV;TAB_SIZE=36;
# ---------------------------------------------------
# アイテム属性定義 (文字コード: UTF-8)
# ---------------------------------------------------
# データ1行目: 'name'行。アイテムデータの各属性の和名。使用可能文字: 任意の文字。
# データ2行目: 'key'行。カラム名。アイテムデータの各属性のキー値。使用可能文字: 半角英数、'_'(アンダースコア)、'-'(ハイフン)。
# ---------------------------------------------------
# 1列目: 'name'列。アイテム属性毎の 'オプションキー名' を指定。
# 2列目以降: アイテム属性毎の 'オプション値' を指定。
# ---------------------------------------------------
name アイテムID アイテム名 アイテム画像 価格 URL 説明
key item_id item_name item_image price url description
data_type string string integer string html
data_structure
for_freeword on on on on on
search_condition_order 10 20
search_condition_type multiple range_slider,direct,valid
search_result_table_order 10 20 40 60
compare_table_order 10 20 40 60
...
```
## 1.3 値型
指定する値は以下。
| No | 値型 | 内容 | 説明 |
|:--:|:---------------------------|:---------|:-------------------------------------------------------------|
| 1 | String | 文字列 | 任意の文字列 Ex) `apple`, `AAA-01`, `15` |
| 2 | Integer | 整数値 | 整数 Ex) `-5`, `0`, `10`, `12,000` |
| 3 | Float | 小数型 | 小数(浮動小数点数型) Ex) `-5.0`, `0.0`, `10`, `12,000.0000` |
| 4 | Number | 数値 | 整数、小数 Ex) `-5.0`, `-10` |
| 5 | Enum | 列挙値 | 各オプション項目毎の特定の文字列値候補の中から指定 Ex) `multiple` |
| 6 | Mix | 混合 | 状況に応じた型で値を指定 Ex) `on`, `5` |
| 7 | 検索/置換文字列 | 検索/置換指定 | 詳細 [\[1.4. 属性定義における検索/置換文字列指定\]](#14-属性定義における検索置換文字列指定) Ex) `/^OK_/`, `'$1'` |
## 1.4. 属性定義における検索/置換文字列指定
属性定義において、次の4項で、検索/置換処理内容を指定する際に用いる条件文字列の記法について記載します。 `data_preprocess_filters`,
`data_preprocess_replaces`,
`data_preprocess_filters_exclude`,
`data_preprocess_filters_include`。
### 1.4.1 文字列値型: 詳細 [検索対象]
[検索対象] に指定する値は以下。
※正規表現についての詳細は、[9.1 付録 A: 正規表現(1): 基本](#91-付録-a-正規表現1-基本) を参照。
| No | 凡例 | 説明 |
|:--:|:-------------|:-------------------------------------------------------------|
| 1 | /正規表現/ | 部分一致による正規表現での対象指定 |
| 2 | \`正規表現\` | 部分一致による正規表現での対象指定 |
| 3 | '対象文字列' | 完全一致による対象文字列指定 |
| 4 | "対象文字列" | 完全一致による対象文字列指定 |
### 1.4.2 文字列値型: 詳細 [正規表現]パターン
[正規表現] パターンに指定する値は以下。
※正規表現についての詳細は、[9.1 付録 A: 正規表現(1): 基本](#91-付録-a-正規表現1-基本) を参照。
| No | 凡例 | 説明 |
|:--:|:-------------|:-------------------------------------------------------------|
| 1 | /正規表現/ | 正規表現による指定 |
| 2 | \`正規表現\` | 正規表現による指定 |
### 1.4.3 文字列値型: 詳細 [置換文字列]
[置換文字列] に指定する値は以下。
MSでの検索/置換処理は、文字種変換や他属性値の取り込み等、一般の検索/置換処理に対して拡張されています。
※置換文字列についての詳細は、以下を参照。
- [9.2 付録 A: 正規表現(2): 置換処理](#92-付録-a-正規表現2-置換処理)
- [9.3 付録 A: 正規表現(3): 置換処理による文字種変換/正規化(キャプチャ処理のMS拡張)](#93-付録-a-正規表現3-置換処理による文字種変換正規化キャプチャ処理のms拡張)
- [9.4 付録 A: 正規表現(4): 置換処理による他属性値の読み込み](#94-付録-a-正規表現4-置換処理による他属性値の読み込み)
| No | 凡例 | 説明 |
|:--:|:-------------|:-------------------------------------------------------------------------------------------------------------|
| 1 | '置換文字列' | 文字列。置換対象の\[正規表現\]パターンで `( )` でキャプチャ指定している場合、それぞれ `$1`, `$2`,... でマッチ文字列を参照可能。パターン全体のマッチ文字列は `$0` で参照可能 |
| 2 | "置換文字列" | 文字列。置換対象の\[正規表現\]パターンで `( )` でキャプチャ指定している場合、それぞれ `$1`, `$2`,... でマッチ文字列を参照可能。パターン全体のマッチ文字列は `$0` で参照可能 |
# 2. 基本定義
## 2.0. 基本定義 (項目一覧)
| No | パラメータ | 値 | 内容 |
|:--:|:---------------------------|:--------|:------------------------------------------------------------------------|
| 1 | @name@ `必須` | String | 属性名(和名可)。 管理者用の識別名。検索システム的には利用されない Ex) `アイテムID` |
| 2 | @key@ `必須` | String | 属性キー(半角英数、アンダーバー ※先頭は'_'以外) システム上の属性識別文字列 Ex) `item_id` |
| 3 | @data_type@ `必須` | Enum | データ型: (string, integer, float, boolean(真:1,偽:その他), html, json) |
| 4 | @data_structure@ `重用` | Enum | データ構造: (デフォルト:値指定なし(単純値), set(複数値; 半角カンマ+半角スペース(', ')区切りの値) Ex) `1, 2, 5`, range(範囲値; min - max) Ex) `3.5 - 5.6` |
| 5 | @data_preprocess_source@ `重要` | String | データ前処理: データ読み込み元とするアイテムデータの列名を指定 |
| 6 | @@data_preprocess_filters@@ `重要` | String | データ前処理: 有効行条件を [\[正規表現\]](#142-文字列値型-詳細-正規表現パターン) で指定。';'区切りで複数指定した場合は、1つでも合致するアイテムが有効。\[正規表現\](; \[正規表現\])... Ex) `/^OK$/`, `/^OK$/; /^ok$/` [\[詳細: 2.2. 基本定義: データ前処理:有効データ選択\]](#22-基本定義-データ前処理:有効データ選択-data_preprocess_filters系統詳細) |
| 7 | @data_preprocess_replaces@ `頻用` | String | データ前処理: 文字列置換指定。([\[正規表現\]](#142-文字列値型-詳細-正規表現パターン) => ['置換文字列'](#143-文字列値型-詳細-置換文字列); ...) Ex) `/^OK$/ => '1'; /^NG$/ => '0'` [\[詳細: 2.3. 基本定義: データ前処理:データ編集\]](#23-基本定義-データ前処理:データ編集-data_preprocess_replaces詳細) |
| 8 | @@@data_preprocess_filters_exclude@@@ `確認` | String | データ前処理: 無効行条件を [\[正規表現\]](#142-文字列値型-詳細-正規表現パターン) で指定。';'区切りで複数指定した場合は、1つでも合致するアイテムは無効。[\[正規表現\]](#142-文字列値型-詳細-正規表現パターン)(; [\[正規表現\]](#142-文字列値型-詳細-正規表現パターン))... Ex) `/^NG_1$/; /^NG_2$/` [\[詳細: 2.2. 基本定義: データ前処理:有効データ選択\]](#22-基本定義-データ前処理:有効データ選択-data_preprocess_filters系統詳細)|
| 9 | @@@data_preprocess_filters_include@@@ `確認` | String | データ前処理: 有効行条件を [\[正規表現\]](#142-文字列値型-詳細-正規表現パターン) で指定。';'区切りで複数指定した場合は、1つでも合致するアイテムが有効。[\[正規表現\]](#142-文字列値型-詳細-正規表現パターン)(; [\[正規表現\]](#142-文字列値型-詳細-正規表現パターン))... Ex) `/^OK$/` [\[詳細: 2.2. 基本定義: データ前処理:有効データ選択\]](#22-基本定義-データ前処理:有効データ選択-data_preprocess_filters系統詳細)|
| 10 | @data_separator@ `重要` | String | \[data_structure: set\]の場合: 当該カラムの文字列値を、各要素に分割する区切り文字を指定。デフォルト(', ': 半角カンマ+半角スペース) Ex) `,`, `、`, `・` |
| 11 | %%%data_precision_hint%%% | Integer | \[data_type: float\]の場合: 期待する数値の精度(小数点下桁数)を、参考情報として整数で指定 Ex) `2` !!※ 検索条件の範囲選択スライダーで表示されるラベルの精度(小数点下桁数と同様)等の調整補助等として利用される!! |
| 12 | @for_freeword@ `重要` | Enum | フリーワード検索対象とする属性は `on` を指定 |
| 13 | %%%for_suggest%%% | Mix | サジェスト検索対象とする属性は `on` を指定。属性別の重みを指定する場合は数値を指定。`on`指定の場合の重みは 1 |
- `データ前処理`は、本表記載の順序(5->6->7->8->9)で適用・実行されます。
- `データ前処理`は、アイテムデータTSVの内容に対する前処理です。5,7,8のオプションによって不要な行を削除し、必要な行のみを取り込めます。又、6のオプションによってTSV内の記載内容を読み替えてデータ登録が可能です。
## 2.1. 基本定義 (data_type詳細)
| No | data_type | 説明 |
|:--:|:--------------------------|:------------------------------------------------------------------------|
| 1 | string | 任意の文字列。値に`"`や`改行`、`タブ文字`を含む場合は入力TSV内で当該カラム値全体を`"`で括る。その上で値内の`"`は`""`として重ねて記載する。|
| 2 | integer | 整数値。半角文字で指定。','は削除した上で数値として読み込まれる |
| 3 | float | 不動小数点数値。半角文字で指定。','は削除した上で数値として読み込まれる |
| 4 | boolean | 真偽値。`1`:真、その他:偽 |
| 5 | html | HTML文字列値。検索結果/比較表等でHTMLタグのまま展開される。フリーワード/サジェスト対象の場合、HTMLタグ部分は除去して登録される。TSV内での文字列値指定時の特殊文字対処は `1. string`の場合と同様。 |
| 6 | json | JSON文字列値。検索結果が文字列ではなく、JSONオブジェクトとして取得される。TSV内での文字列値指定時の特殊文字対処は `1. string`の場合と同様。 |
## 2.2. 基本定義: データ前処理:有効データ選択 (data_preprocess_filters系統詳細)
- データ前処理は、インデキシング時に、MSシステムがアイテムデータTSVの内容を取り込む前に、データ内容に応じた処理を行うものです。
- データ前処理において、各種のフィルタ指定は、アイテムデータTSVの内、MSシステムに取り込む対象を制限し、取り込まない行を取り除く処理です。
- データ前処理の各フィルタ指定は、 `data_preprocess_filters`, `data_preprocess_filters_exclude`, `data_preprocess_filters_include` の3つが有り、この順で実行されます。
## 2.2.1 基本定義: データ前処理:有効データ選択 (data_preprocess_filters系統詳細) 設定例
- 正規表現例を下表に列挙します。
- 正規表現は様々な書き方が出来ますが、使用する規則の種類をなるべく少なく抑えた書き方を記載しています。
- 下例は、必ずしも厳密なチェックではなく、簡易的なチェック処理としてのパターンを記載しています。
- 下表は、あくまでサンプルです。実際の適用時には、元データ内容を確認の上、十分変換結果を確認して利用してください。
| No | 目的 | 正規表現 | Ex) ++適合:元データ++, --非適合:元データ-- |
|:--:|:----------------------------------------------------|:------------------------------------------------|-------------------------------------------------------------------|
| 1 | 整数 | /^[0-9]+$/ | --ABC--, ++100++, -- -10--, -- +10.5--, -- -1,500.5-- |
| 2 | 整数 (符号可) | /^[-+]?[0-9]+$/ | --ABC--, ++100++, ++ -10++, -- +10.5--, -- -1,500.5-- |
| 3 | 整数 (符号,小数可) | /^[-+]?[0-9]+(?:\.[0-9]+)?$/ | --ABC--, ++100++, ++ -10++, ++ +10.5++, -- -1,500.5-- |
| 4 | 整数 (符号,小数,3桁カンマ区切り可) | /^[-+]?[0-9]{1,3}(?:,?[0-9]{3})*(?:\.[0-9]+)?$/ | --ABC--, ++100++, ++ -10++, ++ +10.5++, ++ -1,500.5++ |
| 5 | 数値 (ざっくりと数字関連文字だけにマッチ) | /^[-+.0-9]+$/ | --ABC--, ++100++, ++ -10++, ++ +10.5++, ++ -1,500.5++ |
| 6 | 郵便番号 | /^[0-9]{3}-[0-9]{4}$/ | --ABC--, --100--, --010-001--, ++010-0001++, --010-0001-0000-- |
| 7 | 電話番号 | /^0-9]+-[0-9]+-[0-9]+$/ | --ABC--, --100--, --010-001--, --010-0001--, ++010-0001-0000++ |
| 8 | 金額 | /^(\$[0-9,]+)\|([0-9,]+円)$/ | --ABC--, --100--, ++$100++, ++010円++ |
## 2.3 基本定義: データ前処理:データ編集 (`data_preprocess_replaces`詳細)
- データ前処理は、インデキシング時に、MSシステムがアイテムデータTSVの内容を取り込む前に、データ内容に応じた処理を行うものです。
- データ前処理において、置換指定は、アイテムデータTSVの内容を、各属性値毎に、置換処理を行うものです。
- この置換処理によって、例えば、 `10mm` 等、末尾に文字が入っていて本来数値型データとしてMSシステムに読み込めないTSVデータを、末尾の単位文字列部分を取り除き、数値のみにしてMSシステムに取り込むこと等が可能になります。
- データ前処理の置換処理指定は、 `data_preprocess_replaces` です。
- データ前処理の置換処理指定、 `data_preprocess_replaces` では、指定内容を
`;` で区切って、@連続的に実行する 複数の置換処理を記述できます@。
## 2.3.1 基本定義: データ前処理:データ編集 (`data_preprocess_replaces`系統詳細) 設定例
- 正規表現を使った置換処理例を下表に列挙します。
- 正規表現は様々な書き方が出来ますが、使用する規則の種類をなるべく少なく抑えた書き方を記載しています。
- 下例で示す正規表現等は、必ずしも厳密なパターン表現ではありません。簡易的なマッチ処理としてのパターンを記載しています。
- 下表は、あくまでサンプルです。実際の適用時には、元データ内容を確認の上、十分変換結果を確認して利用してください。
- 下表右端の変換例では、注目箇所に着色していますが、置換処理の結果の正しさは、データ内容や要件によりますので、利用ケースにおける正しさを適宜確認して本機能を利用してください。
- @置換処理については、付録の別項も参照してください。@
| No | 目的 | 置換処理指定例 | 実行結果例 Ex) **'元データ'→'処理後データ'** |
|:--:|:--------------------------|:------------------------------------------------|---------------------------------------------------------------------------------------|
| 1 | 数値単位除去(数字以外から末尾までを削除) | /[^0-9,].*$/ => '' | ~'ABC'→''~, ~~'[100]'→''~~, ~~~'100'→'100'~~~, ~'100m'→'100'~, ~'1,000m^2'→'1,000'~ |
| 2 | 数字以外の文字の全除去 | /[^0-9]/ => '' | ~'ABC'→''~, ~'[100]'→'100'~, ~~~'100'→'100'~~~, ~'100m'→'100'~, ~'1,000mm'→'1000'~, ~~'1,000m^2'→'10002'~~ |
| 3 | 単位(m)除去 | /m/ => '' | ~~~'ABC'→'ABC'~~~, ~~~'[100]'→'[100]'~~~, ~~~'100'→'100'~~~, ~'100m'→'100'~, ~~'1,000m^2'→'1,000^2'~~ |
| 4 | 単位(km)の単位(m)への変換 | /km/ => '000m' | ~~~'ABC'→'ABC'~~~, ~~~'[100]'→'[100]'~~~, ~~~'100'→'100'~~~, ~'100m'→'100'~, ~'100km'→'100000m'~ |
| 5 | 単位の変換(km→m)と除去 | /km/ => '000m'; /m/ => '' | ~~~'ABC'→'ABC'~~~, ~~~'[100]'→'[100]'~~~, ~~~'100'→'100'~~~, ~'100m'→'100'~, ~'100km'→'100000'~ |
| 6 | 単位変換(km→m)と除去,数字文字以外削除 | /km/ => '000m'; /m/ => ''; /[^0-9.]/ => '' | ~~~'ABC'→''~~~, ~~~'[100]'→'100'~~~, ~~~'100'→'100'~~~, ~'100'→'100'~, ~'100'→'100000'~ |
| 7 | 製品ID文字列からのURL生成 | /^(.+)$/ => './details_item_id=$1&q=search' | ~'AX-101'→'./details?item_id=AX-101&q=search'~ |
| 8 | 製品ID文字列を小文字にしてからのURL生成 | /^(.+)$/ => './details_item_id=$LOWER(1)&q=search' | ~'AX-101z'→'./details?item_id=ax-101z&q=search'~ |
| 9 | 製品ID文字列を大文字にしてからのURL生成 | /^(.+)$/ => './details_item_id=$UPPER(1)&q=search' | ~'AX-101z'→'./details?item_id=AX-101Z&q=search'~ |
| 10 | 製品ID文字列を半角化してからのURL生成 | /^(.+)$/ => './details_item_id=$HANKAKU(1)&q=search' | ~'AXー101'→'./details?item_id=AX-101&q=search'~ |
# 3. 共通設定
## 3.0. 共通設定 (項目一覧)
| No | パラメータ | 内容 |
|:--:|:---------------------------|:------------------------------------------------------------------------|
| 1 | @label@ `重要` | 属性名の表示ラベル。無指定の場合は 'key' 値がデフォルト |
| 2 | %label::html% | 属性名の表示ラベル(HTMLで指定)。'label'より優先 |
| 3 | %label::js% | 属性名の表示ラベル(JS処理を指定)。'label::html'より優先 |
| 4 | %label::js::html% | 属性名の表示ラベル(HTMLを生成するJS処理を指定)。'label::js'より優先 |
| 5 | @@value_postfix@@ `頻用` | 値の後置文字列。単位表示等に使用 |
| 6 | %value_postfix::html% | 値の後置文字列。単位表示等に使用(HTMLで指定)。'value_postfix'より優先 |
| 7 | @@value_blank@@ `頻用` | 値が指定されていない場合の表示文字列 |
| 8 | %value_blank::html% | 値が指定されていない場合の表示文字列(HTMLで指定)。'value_blank'より優先 |
| 9 | @@value_list_separator@@ `頻用` | データ構造が 'set' の場合の、表示値の区切り文字列 |
| 10 | %value_list_separator::html% | データ構造が 'set' の場合の、表示値の区切り文字列(HTMLで指定)。'value_list_separator'より優先 |
| 11 | %@@value_range_separator@@ `頻用` | データ構造が 'range' の場合の、表示値の区切り文字列 |
| 12 | %value_range_separator::html% | データ構造が 'range' の場合の、表示値の区切り文字列(HTMLで指定)。'value_range_separator'より優先 |
# 4. 検索条件(絞り込み)設定
## 4.0. 検索条件(絞り込み)設定: (項目一覧)
| No | パラメータ | 内容 |
|:--:|:---------------------------------------------|:------------------------------------------------------------------------|
| 1 | %search_condition_key% | 検索条件のキー。検索条件コントロールのHTML要素でclass属性等に含める文字列。デザイン等に使用。デフォルトは 'key'値。 |
| 2 | @search_condition_type@ `重要` | 検索条件コントロール種別 `※詳細下記` [4.2. 検索条件(絞り込み)設定: search_condition_type (検索コントロール種別指定)](#42-検索条件絞り込み設定-search_condition_type-検索コントロール種別指定) |
| 3 | @search_condition_order@ `重要` | 検索条件コントロールの表示順序。同値指定の場合は複合属性条件として表示。(数値としての昇順。数値が同じ場合は文字列表記の辞書順) `※詳細下記` [4.1. 検索条件(絞り込み)設定: search_condition_order (検索コントロール順序指定)](#41-検索条件絞り込み設定-search_condition_order-検索コントロール順序指定) |
| 4 | @@search_condition_sub_order@@ `頻用` | 検索条件コントロールに関する追加の表示順序指定。(選択肢項目の表示順: 凡例(type:dir); type:並び順判定属性(count:該当アイテム数, value:値、order:アイテムデータの前置"数値##'の数値; search_condition_type:step の場合は、label:ステップラベル,min:ステップ範囲最小値,max:ステップ範囲最大値 も指定可能), dir:並び順方向(asc:昇順, desc:降順)) Ex.1) `count:desc` Ex.2) `value:asc` Ex.3) `order:asc` |
| 5 | %search_condition_drilldown_level% | マスタ無しドリルダウン検索条件の場合の、ドリルダウンの階層順序値(1,2,3 の順にこの何れかで指定) `※詳細下記` [4.4. 検索条件(絞り込み)設定: マスタなしドリルダウン search_condition_drilldown_level (ドリルダウンの詳細設定)](#44-検索条件絞り込み設定-マスタなしドリルダウン-search_condition_drilldown_level-ドリルダウンの詳細設定) |
| 6 | %search_condition_label% | 検索条件ラベル。指定されない場合は、`共通設定 の label系` 又は `key` を使用 %%%ms_sample_001_label_1%%% |
| 7 | %search_condition_label::html% | 検索条件ラベル(HTMLで指定)。'search_condition_label'より優先 %%%ms_sample_001_label_2%%% |
| 8 | %search_condition_label_use_value_postfix% | 検索条件ラベルに値の後置文字列を追加表示する場合は '1' を指定。 %%%ms_sample_001_label_3%%% |
| 9 | %search_condition_group_label% | 複合属性検索条件の場合の検索条件ラベル。無指定の場合は対象属性のいずれかのラベルを使用。%%%ms_sample_001_group_label_1%%% |
| 10 | %search_condition_group_label::html% | 複合属性検索条件の場合の検索条件ラベル(HTMLで指定)。'search_condition_group_label'より優先 %%%ms_sample_001_group_label_2%%% |
| 11 | %search_condition_value::js% | 検索条件コントロールで多肢選択の選択肢の表示値(JS指定) %%%ms_sample_001_value_js%%% |
| 12 | %search_condition_notices_top% | 検索条件コントロール上部に記載する注意書き %%%ms_sample_002_notices_top_1%%% |
| 13 | %search_condition_notices_top::html% | 検索条件コントロール上部に記載する注意書き(HTMLで指定)。'search_condition_notices_top` より優先 %%%ms_sample_002_notices_top_2%%% |
| 14 | %search_condition_notices_bottom% | 検索条件コントロール下部に記載する注意書き %%%ms_sample_002_notices_bottom_1%%% |
| 15 | %search_condition_notices_bottom::html% | 検索条件コントロール下部に記載する注意書き(HTMLで指定)。'search_condition_notices_bottom` より優先 %%%ms_sample_002_notices_bottom_2%%% |
| 16 | %search_condition_notices_separator% | 検索条件コントロール上部/下部に記載する注意書きの区切り文字(デフォルト ';')%%%ms_sample_002_notices_separator_1%%% |
| 17 | @@search_condition_folding@@ `頻用` | 検索条件コントロールの初期状態指定: (無指定:開いた状態。開閉不能, open:開いた状態。開閉可能, close:閉じた状態。開閉可能) %%%ms_sample_003_folding_1%%% |
| 18 | @@search_condition_arrangement@@ `頻用` | 検索条件コントロールの選択肢項目の1段当たりの表示項目数基準 (`無指定`:1行1項目。`整数`:1行毎に最多で指定数個まで表示。`no`:1行毎に詰められるだけ詰めて表示) %%%ms_sample_004_arrangement_1%%% |
| 19 | @@search_condition_items_height_max@@ `頻用` | 検索条件コントロールの選択肢項目要素の高さ上限(超える場合はスクロール表示) %%%ms_sample_005_items_height_max_1%%% |
| 20 | @@@search_condition_set_class_item_value@@@ `確認` | 検索条件コントロールの選択肢項目要素のclassに、選択肢項目の値を設定する場合は '1' を指定。 %%%ms_sample_006_set_class_item_value_1%%% |
| 21 | @@@search_condition_set_color_sample@@@ `確認` | 検索条件コントロールの選択肢項目要素のclassに、カラーサンプル表示用の値を設定する場合は '1' を指定。カラーサンプルを表示する場合には、`search_condition_set_class_item_value` も `1` を設定する %%%ms_sample_007_set_color_sample_1%%% |
| 22 | %search_condition_step% | [search_condition_type:step] ステップ選択肢の定義 `※詳細下表` |
| 23 | %search_condition_slider_specs% | [search_condition_type:range] 値範囲スライダーの定義 `※詳細下表` |
## 4.1. 検索条件(絞り込み)設定: search_condition_order (検索コントロール順序指定)
- 検索条件コントロールの表示順序を指定する。
- 数値としての昇順に表示。数値が同じ場合は文字列表記の辞書順。Ex) -10 => 0 => 1 => 10 => 0020 => 020 => 20 => 20.0 => 100
- 複数の属性に同じ順序値を指定した場合は @@@複合属性条件@@@ `用語` として表示。 複合検索条件 とは、複数属性の値を1つの検索条件コントロール内でまとめて選択可能にするもの。
## 4.2. 検索条件(絞り込み)設定: search_condition_type (検索コントロール種別指定)
- 以下のパラメータを、カンマ区切りで1つ以上指定します。
| No | パラメータ | 適用可能データ型 | 有効なデータ構造 | 複合検索条件で利用 | 内容 |
|:--:|:---------------------|:-------------------|:-----------------|:-------------------|:------------------------------------------------------------------|
| 1 | multiple | 全て | range以外 | ○ | 複数選択 %%%ms_sample_008_condition_type__multiple%%% |
| 2 | single | 全て | range以外 | ○ | 単一選択 %%%ms_sample_008_condition_type__single%%% |
| 3 | checkbox | 全て | range以外 | ○ | 複数選択(チェックボックス) %%%ms_sample_008_condition_type__checkbox%%% |
| 4 | radio | 全て | range以外 | ○ | 単一選択(ラジオボタン) %%%ms_sample_008_condition_type__radio%%% |
| 5 | range_slider | integer, float | 全て | - | 数値範囲選択スライダー %%%ms_sample_008_condition_type__range_slider%%% |
| 6 | direct | integer, float | 全て | - | 数値範囲入力テキストボックス %%%ms_sample_008_condition_type__direct%%% |
| 7 | inside, over, partial| integer, float | range | - | データ構造がrangeの場合の範囲指定検索条件(range_slider, direct)の動作の調整。(inside:指定範囲 又はその内側のアイテムがヒット(デフォルト), over:指定範囲 又はその外側のアイテムがヒット。partial:指定範囲と一部でも重なるアイテムがヒット) !※ v.6.4.2.9-! |
| 8 | valid | integer, float | 全て | - | 有効値範囲表示 %%%ms_sample_008_condition_type__valid%%% |
| 9 | step | integer, float | range以外 | - | 数値範囲の多肢選択 *必ず、single 又は radio と共に指定 !※ v.6.4.2.2-! %%%ms_sample_008_condition_type__step_single%%% |
| 10 | filter | 全て | range以外 | ○ | 多肢選択の選択肢項目の絞り込み !※ v.6.4.2.3-! %%%ms_sample_008_condition_type__filter%%% |
| 11 | drilldown | 全て | range以外 | - | マスタなしドリルダウン。階層的な多肢選択 !!ドリルダウンマスタTSVは不要。!! !!search_condition_drilldwn_level を併せて設定して複数の @@任意の属性@@ からなる階層的選択肢を構成する。!! %%%ms_sample_008_condition_type__drilldown%%% |
| 12 | drilldown | 全て | range以外 | - | マスタありドリルダウン。階層的な多肢選択 !!ドリルダウンマスタTSVの作成が別途必要。!! !!マスタありドリルダウンを構成可能な属性は、 @@キー名が `drilldown` の属性@@ であることが必要。!! %%%ms_sample_008_condition_type__drilldown_with_master%%% |
- 非数値型の場合は、多肢選択系統(1,2,3,4)から1つを選択して指定。
- 数値型の場合は、多肢選択系統(1,2,3,4,8)から1つと、数値用条件UI系統(5,6,7)の3つ全てと、併せて最大4つを選択して指定可能。
- 多肢選択系統をしているしている場合は、前項、全前項に加えてさらに、選択肢の絞り込み(9)を指定可能です。
## 4.3. 検索条件(絞り込み)設定: search_condition_step (step検索条件定義指定) !※v.6.4.2.2-!
- step条件とは、数値データに対して、任意の値範囲毎の選択肢を構成して選択肢を提示するもの。
- 例えば、 `- 1000, - 2000, - 5000, 5000 -, 0 - 3000|低価格帯, 3001 -|高価格帯` と指定すると、`- 1000`、`1000 - 2000`、`2000 - 5000`、`5000 -`、`低価格帯`、`高価格帯` の6つの選択肢条件を表示します。
- step 条件は、単一選択のみ可能です。
- 単一選択UI指定の為に、`search_condition_type` は ***必ず、single 又は radio と共に指定します。***
- 指定規則
- 各値範囲は、`, ` で区切ります。
- 下限を指定しない場合、最初の項目では下限は負の無限大となります。
- 下限を指定しない場合、2つ目以後の項目では、前の項目の上限値を下限値とします。
- 上限を指定しない場合、上限は正の最大値となります。
- 各stepの値範囲において、当該選択肢は、上限と下限の値を含みます。
- つまり、`1000 - 2000` と `2000 - 3000` の2つの項目がある場合、`2000`の値は、どちらのstepを選択した場合にもヒットします。
- 各stepで、値範囲が重複する指定を行うことも可能です。
- `|` で区切って文字列を指定することで、当該stepの表示ラベルを指定出来ます。
- `, `、`|` をそれぞれ区切り文字としてではなく、単にラベル指定中の文字列として扱う場合には、`\` を付加して、`\, `、`\|` として指定します。
%%%ms_sample_009_search_condition_step%%%
## 4.4. 検索条件(絞り込み)設定: マスタなしドリルダウン search_condition_drilldown_level (ドリルダウンの詳細設定)
- マスタなしドリルダウン検索条件は、任意の複数の属性を合成して、1つの階層的な検索UIを提供するものです。
- マスタなしドリルダウン検索条件UIは、 search_condition_type に `drilldown` を指定します。複数選択を可能にする場合は、`multiple` も併せて指定可能です。
- 当該ドリルダウンを構成する属性全てについて、同じ、順序値 search_condition_order を指定します。 Ex) `10`
- 当該ドリルダウンを構成する各属性について、それぞれ異なる階層順序値を指定します。 階層は、最大5階層まで指定可能です。
| No | パラメータ | 内容 |
|:--:|:----------------------|:-----------------------------------------------------------------------|
| 1 | search_condition_order | 当該ドリルダウンを構成する全属性に、同じ順序値を指定する。 |
| 2 | search_condition_type | ドリルダウンを構成する場合は、 `drilldown` を指定。 |
| 3 | search_condition_drilldown_level | ドリルダウンの階層順位。属性毎に `1` - `5` の値を指定。 |
%%%ms_sample_010_search_condition_drilldown%%%
## 4.5. 検索条件(絞り込み)設定: マスタありドリルダウン
- マスタありドリルダウン検索条件は、キー名が `drilldown` の属性を使用して、階層的な検索UIを提供するものです。
- マスタありドリルダウン検索条件UIは、 search_condition_type に `drilldown` を指定します。
- アスタありドリルダウンは、別途ドリルダウン定義TSVでマスタ定義を行います。
- マスタありドリルダウンの最大階層数は3階層です。
| No | パラメータ | 内容 |
|:--:|:----------------------|:-----------------------------------------------------------------------|
| 1 | search_condition_type | ドリルダウンを構成する場合は、 `drilldown` を指定。 |
%%%ms_sample_010_search_condition_drilldown_with_master%%%
## 4.6. 検索条件(絞り込み)設定: search_condition_slider_specs (値範囲スライダーの詳細設定)
(抜粋)
| No | パラメータ | 内容 |
|:--:|:----------------------|:-----------------------------------------------------------------------|
| 1 | @numOfLabelsRequest@ `重要` | スライダー下部の値ラベルの数の希望値 Ex) `numOfLabelsRequest: 4` |
| 2 | numOfLabelsMin | スライダー下部の値ラベル数の最小値 Ex) `numOfLabelsMin: 3` |
| 3 | numOfLabelsMax | スライダー下部の値ラベル数の最大値 Ex) `numOfLabelsMax: 5` |
| 4 | useOriginalEdgeLabels | スライダー下部の値ラベルで最小値、最大値を正確に反映することを希望する場合は`1`を指定。希望しない場合は`0`を指定。 Ex) `useOriginalEdgeLabels: 1` |
| 5 | @@withLabels@@ `参考` | スライダー下部の値ラベルの表示有無 (`1`:表示(デフォルト), `0`:非表示) |
| 6 | @@step@@ `参考` | 目盛りの最小幅、かつハンドルの移動単位です。デフォルト1 Ex) `0.01`, `100` |
| 7 | stepFromPoints | stepの値をデータから自動決定するかどうかを指定します。デフォルトtrue Ex) `stepFromPoints: false` |
| 8 | @@heatmap@@ `参考` | スライダー背景のヒートマップに表示する場合はtrueを指定。デフォルト: true Ex) `heatmap: false` |
| 9 | @@heatmapRadius@@ `参考` | スライダー背景のヒートマップに表示するデータ1点毎の広がりの程度。デフォルト:1.8 Ex) `heatmapRadius: 10` |
%%%ms_sample_010_search_condition_slider_specs%%%
(全パラメータ)
| No | パラメータ | 型 | 内容 |
|:--:|:--------------------|:-----------|:-----------------------------------------------------------------------|
| 1 | step | number | 目盛りの最小幅、かつハンドルの移動単位です。デフォルト1 |
| 2 | epsilon | number | 小数の比較に使う微小数です。デフォルト1e−8 |
| 3 | minDistance | number | ハンドル間の距離の最小値を与えます。デフォルト0 |
| 4 | rangePressRepeatInterval | number | ハンドル間領域でマウスを押下し続けたとき、この値のミリ秒ごとにマウスカーソル位置へ向けてハンドルが少しずつ移動します。ハンドルが両側に存在するとき、よりマウスを押下した位置に近いハンドルが選ばれます。デフォルト100 |
| 5 | rangePressRepeatWaitTime | number | ハンドル間領域でマウス押下したとき、この値のミリ秒間静止していると、マウスカーソル位置へ向けたハンドルの移動が開始します。押下したままこの値のミリ秒間中に移動する(つまりドラッグする)と、領域の範囲を維持したまま両端のハンドルを操作できます。デフォルト300 |
| 6 | useOriginalEdgeLabels | Boolean | 表示領域端の値を示すラベルでは、stepの値より精度の高い値を、そのままの精度で表示するようにします。デフォルトtrue |
| 7 | useTransform | Boolean | ハンドル位置やハンドル間領域などの位置操作にCSS3 Transformを使うようにします。デフォルトfalse |
| 8 | numOfLabelsMax | number | 自動計算するときのラベル最大数を指定します。デフォルト5 |
| 9 | numOfLabelsMin | number | 自動計算するときのラベル最小数を指定します。デフォルト3 |
| 10 | numOfLabelsRequest | number | 自動計算するときのラベル数の目標数を指定します。−1を与えると指定なしになります。デフォルト−1 |
| 11 | withRanges | Boolean | ハンドル間領域をクリックしたりドラッグしたりできるようにします。デフォルトtrue |
| 12 | withLabels | Boolean | 位置に対する値のラベルと、対応する罫線を表示するようにします。デフォルトtrue |
| 13 | leadingRange | Boolean | ハンドル間領域が、スライダ表示領域の下限値とひとつめのハンドルの間にも生成されます。デフォルトtrue |
| 14 | trailingRange | Boolean | ハンドル間領域が、スライダ表示領域の上限値とふたつめのハンドルの間にも生成されます。デフォルトtrue |
| 15 | leadingRangeDraggability | Boolean | leadingRangeによって生成されたハンドル間領域のドラッグ操作可否を指定します。デフォルトfalse |
| 16 | trailingRangeDraggability | Boolean | trailingRangeによって生成されたハンドル間領域のドラッグ操作可否を指定します。デフォルトfalse |
| 17 | stepFromPoints | Boolean | stepの値をpointsの情報から算出するかどうかを指定します。デフォルトfalse |
| 18 | heatmapConfig | HeatmapConfig | heatmapjsに渡す設定情報です。`container`は指定できません。heatmapjs側の実装により、一部後から与えても無効な値がある場合があります。 |
| 19 | heatmapMargin | number | canvasの外にはみ出させる点の個数を指定します。heatmapjsが二次元として実装されているので、一次元ヒートマップとして扱うために各点を直交方向に複製していることに由来します。heatmapjsの1点の大きさ(radius)に対して十分に大きい値にしないと、端が丸まってしまいます。デフォルト15 |
| 20 | className | String | コンポーネントのルートになる要素のクラス名を指定します。デフォルト"mf_wdg_rsldr_container" |
| 21 | sliderClassName | String | スライダ本体のクラス名を指定します。デフォルト"mf_wdg_rsldr_wrapper" |
| 22 | handleClassName | String | ハンドルを表現する要素のクラス名を指定します。デフォルト"mf_wdg_rsldr_handle"、たとえば0起点で数えたn番目のハンドルには`mf_wdg_rsldr_handle mf_wdg_rsldr_handle-${n}`というクラスがつきます。 |
| 23 | rangeClassName | String | ハンドル間領域を表現する要素のクラス名を指定します。デフォルト"mf_wdg_rsldr_range"、たとえば0起点で数えたn番目のハンドル間領域には`mf_wdg_rsldr_range mf_wdg_rsldr_range-${n}`というクラスがつきます。leadingRangeやtrailingRangeがある場合には**それらを含んで**数えます。leadingRangeが有効なら対応するハンドル間領域は常に0番目となり、trailingRangeによるハンドル間領域は常に最後の番号が与えられます。 |
| 24 | railClassName | String | スライダの背景となる要素のクラス名を指定します。デフォルト"mf_wdg_rsldr_rail" |
| 25 | labelClassName | String | ラベルを表現する要素のクラス名を指定します。デフォルト"mf_wdg_rsldr_label" |
| 26 | labelsClassName | String | ラベルを表現する要素を包含する要素のクラス名を指定します。デフォルト"mf_wdg_rsldr_labels" |
| 27 | tickMarkClassName | String | 罫線を表現する要素のクラス名を指定します。デフォルト"mf_wdg_rsldr_tickmark" |
| 28 | optionalHandleClassName | String | ハンドルを表現する要素にさらにクラス名を与える場合に指定します。n番目などの情報を付加したくない場合などに使います。デフォルト空文字列 |
| 29 | optionalRangeClassName | String | ハンドル間領域を表現する要素にさらにクラス名を与える場合に指定します。n番目などの情報を付加したくない場合などに使います。デフォルト空文字列 |
| 30 | optionalRailClassName | String | スライダの背景となる要素にさらにクラス名を与える場合に指定します。デフォルト空文字列 |
| 31 | leadingRangeClassName | String | leadingRangeによって生成されたハンドル間領域を表現する要素のクラス名を指定します。デフォルト"mf_wdg_rsldr_range_leading" |
| 32 | trailingRangeClassName | String | trailingRangeによって生成されたハンドル間領域を表現する要素のクラス名を指定します。デフォルト"mf_wdg_rsldr_range_trailing" |
| 33 | activeHandleClassName | String | ハンドルを表現する要素がマウス押下されたときに付与するクラス名を指定します。具体的にはmousedownに反応し、mouseupで解除されます。デフォルト"mf_wdg_rsldr_handle-active" |
| 34 | activeRangeClassName | String | ハンドル間領域を表現する要素がマウス押下されたときに付与するクラス名を指定します。具体的にはmousedownに反応し、mouseupで解除されます。デフォルト"mf_wdg_rsldr_range-active" |
| 35 | hoverHandleClassName | String | ハンドルを表現する要素にマウスカーソルが重なったときに付与するクラス名を指定します。具体的にはmouseoverに反応し、mouseoutで解除されます。デフォルト"mf_wdg_rsldr_handle-hover" |
| 36 | hoverRangeClassName | String | ハンドル間領域を表現する要素にマウスカーソルが重なったときに付与するクラス名を指定します。具体的にはmouseoverに反応し、mouseoutで解除されます。デフォルト"mf_wdg_rsldr_handle-hover" |
| 37 | customRailClassName | String | スライダ背景となるヒートマップを格納する要素に与えるクラス名を指定します。デフォルト"mf_wdg_rsldr_customRail" |
| 38 | heatmap | Boolean | スライダー背景のヒートマップに表示する場合はtrueを指定。デフォルト: true Ex) `heatmap: false` |
| 39 | heatmapRadius | number | スライダー背景のヒートマップに表示するデータ1点毎の広がりの程度。デフォルト 1.8` |
- 複数の設定を行う場合は、`, ` 区切りで指定します。 Ex) `numOfLabelsMin: 3, numOfLabelsMax: 5`
# 5. 検索条件(並び順)設定
## 5.0. 検索条件(並び順)設定: (項目一覧)
| No | パラメータ | 内容 |
|:--:|:---------------------------------------------|:------------------------------------------------------------------------|
| 1 | %search_sort_option_order% | 並び順条件コントロールの表示順序 |
| 2 | %search_sort_option_label% | 並び順条件コントロールに表示するラベル |
| 3 | %search_sort_option_asc_desc% | 並び順条件コントロールで指定する並び順序(asc:昇順, desc:降順) |
* 並び順設定コントロールを使用する場合、上記3項目の設定が全て必須です。
## 5.1. 検索条件(並び順)設定例
- [1属性に1つの並び順条件を設定する場合] 表示ラベル: アイテムIDの昇順, 並び順: 昇順
- search_sort_option_order => `10`
- search_sort_option_label => `アイテムIDの昇順`
- search_sort_option_asc_desc => `asc`
- [1属性に2つの並び順条件を設定する場合] 表示ラベル: 安い順,高い順, 並び順: 昇順,降順
- search_sort_option_order => `50,60`
- search_sort_option_label => `安い順,高い順`
- search_sort_option_asc_desc => `asc,desc`
%%%ms_sample_011_search_condition_sort%%%
# 6. 検索結果表設定
## 6.0. 検索結果表設定: (項目一覧)
| No | パラメータ | 内容 |
|:--:|:---------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------|
| 1 | %search_result_table_key% | 検索結果表のキー。検索結果表セルのHTML要素でclass属性等に含める文字列。デザイン等に使用。デフォルトは 'key'値。Ex) `length`, `weight` |
| 2 | @search_result_table_order@ `必須` | 検索結果表の表示順序。同値指定の場合は複合属性列として表示。(数値としての昇順。数値が同じ場合は文字列表記の辞書順) Ex) `10`, `20` %%%ms_sample_012_002__table_order%%% |
| 3 | @@@search_result_table_sub_order@@@ `参考` | 検索結果表に関する追加の表示順序指定。(複合属性列として表示する場合の、属性毎の表示順序を指定) Ex) `10`, `20` %%%ms_sample_012_003__table_sub_order%%% |
| 4 | @search_result_table_label@ `重要` | 検索結果表ラベル Ex) `長さ`, `重量` %%%ms_sample_012_004__table_label%%% |
| 5 | @@search_result_table_label::html@@ `重要` | 検索結果表ラベル(HTML指定)。search_result_table_labelより優先。Ex) `長さ<i>(本体部分)</i>`, `面積(m<sup>2</sup>)` %%%ms_sample_012_005__table_label_html%%% |
| 6 | %search_result_table_label::js% | 検索結果表ラベル(JS指定)。search_result_table_label::htmlより優先。 Ex) `'['+attr.key+']'` `※詳細下記` %%%ms_sample_012_006__table_label_js%%% |
| 7 | %search_result_table_label::js::html% | 検索結果表ラベル(JS,HTML指定)。search_result_table_label::jsより優先。 Ex) `'<u>'+attr.key+'</u>'` `※詳細下記` %%%ms_sample_012_007__table_label_js_html%%% |
| 8 | @@search_result_table_label__<数値>@@ `参考` | 検索結果表ラベル(階層指定)。階層指定無しのラベル指定(search_result_table_label(::js,::html))より優先。 Ex) `search_result_table_label__01`:`基本情報`, `search_result_table_label__02`:`重量` 詳細 [6.2. 検索結果表設定: search_result_table_label__<数値>等 (カラムラベルの階層指定)](#62-検索結果表設定-search_result_table_label__数値等-カラムラベルの階層指定) %%%ms_sample_012_008__table_label_layers%%% |
| 9 | @@search_result_table_label__<数値>::html@@ `参考`| 検索結果表ラベル(階層指定)(HTML指定)。階層指定無しのラベル指定(search_result_table_label(::js,::html))より優先。 Ex) `search_result_table_label__01::html`:`"基本情報"`, `search_result_table_label__02::html`:`長さ<i>(本体部分)</i>` %%%ms_sample_012_009__table_label_layers_html%%% |
| 10 | %search_result_table_label_value_postfix% | 検索結果表ラベルに追加表示する値の後置文字列。Ex) `km` %%%ms_sample_012_008__table_label_value_postfix%%% |
| 11 | %search_result_table_label_value_postfix::html% | 検索結果表ラベルに追加表示する値の後置文字列(HTML指定)。search_result_table_label_value_postfixより優先。`m<sup>2</sup>` %%%ms_sample_012_009__table_label_value_postfix_html%%% |
| 12 | %search_result_table_label_use_value_postfix% | 検索結果表ラベルに値の後置文字列を追加表示する場合は '1' を指定。 Ex) `1` %%%ms_sample_012_010__table_label_use_value_postfix%%% |
| 13 | %search_result_table_value_index% | [data_structure:set] 値が複数値の場合に表示する値の順序指定 (1始まり) Ex) `1` %%%ms_sample_012_011__table_value_index%%% |
| 14 | @@search_result_table_value::js@@ `重要` | 検索結果表での表示値(JS指定)。 Ex) `value*1000` %%%ms_sample_012_012__table_value_js%%% |
| 15 | @@search_result_table_value::js::html@@ `重要` | 検索結果表での表示値(JS,HTML指定)。search_result_table_value::jsより優先。Ex) `value*1000+'m<sup>2</sup>` %%%ms_sample_012_013__table_value_js_html%%% |
| 16 | @@search_result_table_value_each::js@@ `重要` | 検索結果表での表示値(JS指定)。 Ex) `value*1000` %%%ms_sample_012_014__table_value_each_js%%% |
| 17 | @@search_result_table_value_each::js::html@@ `重要` | 検索結果表での表示値(JS,HTML指定)。search_result_table_value_each::jsより優先。Ex) `value*1000+'m<sup>2</sup>` %%%ms_sample_012_015__table_value_each_js_html%%% |
| 18 | @@search_result_table_value_label@@ `重要` | 検索結果表での固定の表示値(JS指定)。 Ex) `Download` %%%ms_sample_012_018__table_value_label%%% |
| 19 | @@search_result_table_value_label::html@@ `重要` | 検索結果表での固定の表示値(HTML指定)。 Ex) `

` %%%ms_sample_012_019__table_value_label_html%%% |
| 20 | %search_result_table_display_if_has_value% | 検索結果表で、当該属性に値を持つアイテムがある場合のみ表示するには '1'を指定。 Ex) `1` !!※又、この機能の利用には、各種設定TSVで、 `search_result_table_cell_no_value_attr_class_set` に `1` を設定しておく必要があります。!! %%%ms_sample_012_016__table_display_if_has_values%%% |
| 21 | @@@search_result_table_width@@@ `参考` | 検索結果表のセル幅指定 Ex) `200px`, `15rem` %%%ms_sample_012_017__table_width%%% |
| 22 | @search_result_table_link@ `頻用` | 検索結果表で、値にリンクを設定する場合のリンク先URL値を持つ属性のキーを指定。 Ex) `item_url` %%%ms_sample_012_018__table_link%%% |
| 23 | %search_result_table_link_index% | 検索結果表で、値にリンクを設定する場合のリンク先URL値を持つ属性が data_structure:set (リスト値) のときに、URLとして使用する値の順序値を指定 (1始まり) Ex) `1` %%%ms_sample_012_019__table_link_index%%% |
| 24 | @@search_result_table_blank_nolink@@ `参考` | 検索結果表で、値にリンクを設定する場合において、リンク先URLの値が空の場合にデータを空扱いする設定 (1:リンク先URL値が空ならデータを空扱い) Ex) `1` !!- リンク先URL情報がある場合にのみ リンクスイッチを表示したい場合に!! %%%ms_sample_012_020__table_blank_nolink%%% |
| 25 | @search_result_table_value_image@ `頻用` | 検索結果表で、値を画像として表示する指定: (1:画像として表示。但し、値として指定する画像URL末尾に拡張子が無い場合等は単に文字列として表示) Ex) `1` %%%ms_sample_012_021__table_value_image%%% |
| 26 | %search_result_table_value_blank% | 検索結果表で、値が空の場合の表示値 Ex) `-`, `無し` %%%ms_sample_012_022__table_value_blank%%% |
| 27 | %search_result_table_value_blank::html% | 検索結果表で、値が空の場合の表示値(HTMLで指定) 'search_result_table_value_blank' より優先 Ex) `<u>なし<u>` %%%ms_sample_012_023__table_value_blank_html%%% |
## 6.1. 検索結果表設定: search_result_table_label::js等 (カラムラベルのJS処理指定)
- 検索結果表のカラムラベルをJS処理で指定することが可能です。指定するオプションは以下のいずれかです。
- search_result_table_label::js: カラムラベルをJS処理で指定
- search_result_table_label::js::html (カラムラベルとするHTMLをJS処理で指定)
- カラムラベル文字列を返却するJS処理を指定します。処理内で参照可能な変数は以下です。
| No | パラメータ | 内容 |
|:--:|:---------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------|
| 1 | attr | 当該カラムの属性オブジェクト Ex) `attr.key` %%%ms_sample_013_001__table_label_js__attr%%% |
| 2 | attrs | 検索結果表に表示する属性オブジェクトの配列 Ex) `attrs[x].key` %%%ms_sample_013_002__table_label_js__attrs%%% |
| 3 | attributes | 全属性オブジェクト Ex) `attributes.length.key` %%%ms_sample_013_003__table_label_js__attributes%%% |
| 4 | x | カラムの属性方向順序値。正方向テーブルの場合、カラムラベルのX座標(0,1,2,3,...) Ex) `x` %%%ms_sample_013_004__table_label_js__x%%% |
| 5 | y | カラムのラベル階層方向順序値。正方向テーブルの場合、カラムラベルのY座標(0,1,2,3,...) Ex) `y` %%%ms_sample_013_005__table_label_js__y%%% |
| 6 | items | 検索結果のアイテムリストデータ Ex) `_.get(items[0],attr.key+'.raw','')` %%%ms_sample_013_006__table_label_js__items%%% |
| 7 | _ | lodashオブジェクト Ex) `_.get(data[0], attr.key+'.raw','')` %%%ms_sample_013_008__table_label_js__lodash%%% |
## 6.2. 検索結果表設定: search_result_table_label__<数値>等 (カラムラベルの階層指定)
- 検索結果表のカラムラベルを階層構造を持った指定が可能です。
- search_result_table_label__<数値>: カラムラベルを文字列で指定(ラベル階層を <数値> で指定)
- search_result_table_label__<数値>::html: カラムラベルを文字列で指定(ラベル階層を <数値> で指定)
- <数値> は、`01`, `02`, `03` 等を指定します。数値の値自体には意味はなく、値の小さいものから順に階層が構成されます。
- @***各属性に指定された各階層のラベル値の内、同じ値の設定されているセルが結合されて表示されます。***@
- `search_result_table_label__<数値>` 又は `search_result_table_label__<数値>::html` が指定された属性が1つでもある場合、全属性において `label`, `search_result_table_label` 等で指定された単層ラベル指定は無視されます。
- `search_result_table_label__<数値>` と `search_result_table_label__<数値>::html` に同じ <数値> が指定されている場合、`search_result_table_label__<数値>::html` の指定が優先されます。
### 6.2.1. 属性定義とその結果の表示結果の具体例
**[属性定義 例]**
| key | item_id | brand | color | compo_horizontal | compo_vertical | feature |
|:-------------------------------------|:--------------|:--------------|:--------------|:-----------------|:---------------|:--------------|
| search_result_table_order | 10 | 20 | 30 | 40 | 50 | 60 |
| search_result_table_label__01 | アイテムID | 基本情報 | 基本情報 | 補足情報 | 補足情報 | 補足情報 |
| search_result_table_label__02 | アイテムID | 基本情報 | 基本情報 | 組成 | 組成 | 特徴 |
| search_result_table_label__03 | アイテムID | ブランド | 色 | 横 | 縦 | 特徴 |
**[表示内容 例]**
%%%ms_sample_012_008__table_label_layers__details_001%%%
## 6.3. 検索結果表設定: search_result_table_value::js等 (セル値のJS処理指定)
- 検索結果表でデータセル値をJS処理で指定することが可能です。指定するオプションは以下のいずれかです。
- search_result_table_value::js: データセル値をJS処理で指定
- search_result_table_value::js::html (データセル値とするHTMLをJS処理で指定)
- データセル値を返却するJS処理を指定します。処理内で参照可能な変数は以下です。
| No | パラメータ | 内容 |
|:--:|:---------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------|
| 1 | @value@ `重要` | 当該セル値 Ex) `value/1000`, `(value*100)+'cm'`, `(value>=500?'高値':'低値')` %%%ms_sample_014_001__table_value_js__value%%% |
| 2 | @@values@@ `参考` | 当該セル値。前項 `value` のエイリアス。データ構造(`data_structure`)が `set` の場合に、式中で使用している値が配列であることを表現するために利用できる。 Ex) `_.size(values)`, `'['+(values)+']'` %%%ms_sample_014_001A__table_value_js__value%%% |
| 3 | @raw@ `重要` | 当該セル値の値型、値構造に応じたパース処理前の元データ文字列 Ex) `raw` %%%ms_sample_014_002__table_value_js__raw%%% |
| 4 | original | 当該セル値の前処理適用前の原文字列 Ex) `original` %%%ms_sample_014_003__table_value_js__original_pre%%% %%%ms_sample_014_003__table_value_js__original%%% |
| 5 | min | 当該セル値の最小値。値型がrangeの場合。 Ex) `min + '〜' + max` %%%ms_sample_014_004__table_value_js__min%%% |
| 6 | max | 当該セル値の最大値。値型がrangeの場合。 Ex) `min + '〜' + max` %%%ms_sample_014_005__table_value_js__max%%% |
| 7 | valueObj | 当該セルの値オブジェクト Ex) `valueObj.raw` %%%ms_sample_014_006__table_value_js__valueObj%%% |
| 8 | @item@ `重要` | アイテムデータオブジェクト [用法] `item('属性キー','デフォルト値[省略可]')` Ex) `item('item_price')`, `item('item_price','(不明)')` %%%ms_sample_014_007__table_value_js__item%%% |
| 9 | attr | 当該セルの属性オブジェクト Ex) `attr.key` %%%ms_sample_014_008__table_value_js__attr%%% |
| 10 | attrs4column | 検索結果表の当該カラムに表示する属性オブジェクトの配列 Ex) `attrs[0].key` %%%ms_sample_014_009__table_value_js__attrs4column%%% |
| 11 | attrs4table | 検索結果表に表示する全属性オブジェクトの配列 Ex) `attrs[0].key` %%%ms_sample_014_010__table_value_js__attrs4table%%% |
| 12 | attributes | 全属性オブジェクト Ex) `attributes.length.key` %%%ms_sample_014_011__table_value_js__attributes%%% |
| 13 | _ | lodashオブジェクト Ex) `_.get(item, attr.key+'.raw','')` %%%ms_sample_014_013__table_value_js__lodash%%% |
# 7. 比較表設定
## 7.0. 比較表設定: (項目一覧)
- 比較表の各設定は、検索結果表の各設定と同様です。詳細やサンプルは、検索結果表の対応する `表オプション項目` をご参照下さい。
- `表オプション項目` は、検索結果表や比較表での各属性の振る舞いを設定する物です。各表オプション項目毎に、`search_result_table_+表オプション項目名`、`compare_table_+表オプション項目名` として設定対象の表を区別します。
| No | パラメータ | 内容 |
|:--:|:---------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------|
| 1 | %compare_table_key% | 比較表のキー。比較表セルのHTML要素でclass属性等に含める文字列。デザイン等に使用。デフォルトは 'key'値。 |
| 2 | %compare_table_order% | 比較表の表示順序。同値指定の場合は複合属性条件として表示。(数値としての昇順。数値が同じ場合は文字列表記の辞書順) |
| 3 | %compare_table_sub_order% | 比較表に関する追加の表示順序指定。(複合属性列として表示する場合の、属性毎の表示順序を指定) |
| 4 | %compare_table_label% | 比較表ラベル |
| 5 | %compare_table_label::html% | 比較表ラベル(HTML指定)。compare_table_labelより優先。 |
| 6 | %compare_table_label::js% | 比較表ラベル(JS指定)。search_result_table_label::htmlより優先。 |
| 7 | %compare_table_label::js::html% | 比較表ラベル(JS,HTML指定)。search_result_table_label::jsより優先。 |
| 8 | %compare_table_label_value_postfix | 比較表ラベルに追加表示する値の後置文字列。 |
| 9 | %compare_table_label_value_postfix::html%| 比較表ラベルに追加表示する値の後置文字列(HTML指定)。search_result_table_label_value_postfixより優先。 |
| 10 | %compare_table_label_use_value_postfix% | 比較表ラベルに値の後置文字列を追加表示する場合は '1' を指定。 |
| 11 | %compare_table_value_index% | [data_structure:set] 値が複数値の場合に表示する値の順序指定 (1始まり) |
| 12 | %compare_table_value::js% | 比較表での表示値(JS指定)。 |
| 13 | %compare_table_value::js::html% | 比較表での表示値(JS,HTML指定)。search_result_table_value::jsより優先。 |
| 14 | @@compare_table_value_each::js@@ `重要` | 比較表での表示値(JS指定)。 Ex) `value*1000` |
| 15 | @@compare_result_table_value_each::js::html@@ `重要` | 比較表での表示値(JS,HTML指定)。compare_table_value_each::jsより優先。Ex) `value*1000+'m<sup>2</sup>` |
| 16 | %compare_table_display_if_has_value% | 比較表で、当該属性に値を持つアイテムがある場合のみ表示する場合は '1'を指定。 |
| 17 | %compare_table_link% | 比較表で、値にリンクを設定する場合のリンク先URL値を持つ属性のキーを指定。 |
| 18 | %compare_table_link_index% | 比較表で、値にリンクを設定する場合のリンク先URL値を持つ属性が data_structure:set の場合のURLとして使用する値の順序指定 (1始まり) |
| 19 | %compare_table_blank_nolink% | 比較表で、値にリンクを設定する場合において、値が空の場合にはリンクを設置しない指定 (1:値が空ならリンクを設置しない) |
| 20 | %compare_table_value_image% | 比較表で、値を画像として表示する指定: (1:画像として表示。但し、値として指定する画像URL末尾に拡張子が無い場合等は単に文字列として表示) |
| 21 | %compare_table_value_blank% | 比較表で、値が空の場合の表示値 |
| 22 | %compare_table_value_blank::html% | 比較表で、値が空の場合の表示値(HTMLで指定) 'compare_table_value_blank' より優先 |
| 23 | %compare_table_output_target% | 比較表に表示するが、CSV出力対象外とする属性には 'browser' を指定。 |
## 7.1. 比較表設定: compare_table_label::js等 (カラムラベルのJS処理指定)
- 参照 [6.1. 検索結果表設定: search_result_table_label::js等 (カラムラベルのJS処理指定)](#61-検索結果表設定-search_result_table_labeljs等-カラムラベルのjs処理指定)
## 7.2. 比較表設定: compare_table_value::js等 (セル値のJS処理指定)
- 参照 [6.3. 検索結果表設定: search_result_table_value::js等 (セル値のJS処理指定)](#63-検索結果表設定-search_result_table_valuejs等-セル値のjs処理指定)
# 8. カスタムオプション項目
- カスタムオプション項目は、任意の属性オプション項目を、属性定義TSVに含めることができるものです。
- カスタムオプション項目名は、必ず、 `custom__` で始めます。 Ex) `custom__display_pattern`
%%%ms_sample_015_001__table_custom__display_pattern_pre%%%
%%%ms_sample_015_001__table_custom__display_pattern%%%
# 9. 付録 A: 正規表現
## 9.1 付録 A: 正規表現(1): 基本
関連設定項目: [data_preprocess_filters](#data_preprocess_filters), [`data_preprocess_replaces`](#data_preprocess_replaces), [data_preprocess_filters_exclude](#data_preprocess_filters_exclude), [data_preprocess_filters_include](#data_preprocess_filters_include)
- `正規表現 (Regular Expression)` とは、文字の並び方の規則を記号的に記述したものです。
- 正規表現で表した文字の並び方の規則のことを、 `パターン (Pattern)` と呼びます。
- ある文字列が、特定の正規表現パターンで表される規則に適合している場合、 `マッチする` と言います。
- 又、ある文字列が、特定の正規表現パターンで表される規則に適合する部分文字列を持つ場合も、 `マッチする` と言うことがあります。Ex) 正規表現パターン `a` は 文字列 `a`、`ab`、`ba` 等にマッチする。
- 正規表現でパターンを記述する際に用いる記号で、 `.` は `全ての種類の文字` にマッチします。 `*` は `直前の正規表現の0回以上の繰り返し` にマッチします。
- よって、 `.*` という正規表現パターンは、`全ての種類の0回以上の繰り返し` にマッチするので、 `あらゆる文字列` にマッチする、ことになります。
- `a` 等アルファベットや数字の文字は、その文字自体にマッチします。
- よって、 `a.*` という正規表現パターンは、`a で始まる全ての文字列` にマッチします。
- `+` という記号は、 `直前の正規表現の1回以上の繰り返し` にマッチします。
- よって、 `.+` は `1文字以上の全ての文字列` にマッチし、 `a.+` は、`a で始まる2文字以上の全ての文字列` にマッチします。
- `[012]` は、`0 か 1 か 2 のどれか1文字` にマッチし、 `[0-9]` は `0から9(0,1,2,3,4,5,6,7,8,9)のどれか1文字` にマッチします。
- その他、種々の規則の表現方法があり、正規表現によって、データ文字列が、想定しているパターンにマッチするかを判定することで、適切なデータが入力されているかを確認出来たりと利用されます。
- 例えば、 `^[0-9]+$` という正規表現パターンは、数字のみからなる1文字以上の繰り返し、つまり、 `数字 (Ex. 10, 5, 200, ...)` にマッチします。
- ここで、 `^` は文字列の先頭、 `$` は `文字列の末尾` という位置にマッチする正規表現の記号です。
- 又、正規表現は、しばしば `/ /` で括って記述・表示されます。 Ex) `/^[0-9]+$/`
- 正規表現には、種々のバリエーション(方言)がありますが、MSで、 `アイテムデータTSVの前処理` で使用する正規表現は、Javaの正規表現に大凡一致しています。 [参照:Pattern](https://sun.ac.jp/prof/yamagu/java8docs/api/java/util/regex/Pattern.html)
- 下表に、基本的な規則を幾つか列挙しています。正規表現の詳細については、一般の外部資料等を御参照下さい。
| No | パラメータ | 規則 |
|:--:|:---------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------|
| 1 | アルファベット,数字,ひらがな等 | その文字自体にマッチします。 Ex) `/1a/`にマッチする文字列: `1a`, `11a`, `321abc` |
| 2 | 記号文字 | 基本的に、その文字自体にマッチします。但し、正規表現規則で別の意味を持つ特殊記号にマッチさせる場合は、直前に `\` (バックスラッシュ; Windowでは円マーク記号) を記述します。 Ex) `/@/`にマッチする文字列: `samlple@sample.test`, `@$100`, `\^a`にマッチする文字列: `a^x`, `ba^x` (`/^a/` には `a^x` はマッチするが、 `ba^x` はマッチしない。 `^` は先頭位置にマッチする特殊記号の為) |
| 3 | ^ | 文字列の先頭にマッチする。 Ex) `/^a/`にマッチする文字列: `a`, `apple` |
| 4 | $ | 文字列の末尾にマッチする。 Ex) `/a$/`にマッチする文字列: `a`, `banana` |
| 5 | . | 全ての1文字にマッチする。 Ex) `.`にマッチする文字列: `a`, `5`, `1`, `あ`, `正`, `正規表現` |
| 6 | * | 直前の正規表現の0回以上の繰り返し。 Ex) `/.*/`にマッチする文字列: ` `, `a`, `aa` (空文字列にもマッチ) |
| 7 | ? | 直前の正規表現の0回か1回の繰り返し。 Ex) `/ab?c/`にマッチする文字列: `abc`, `ac` (`b`が`a`と`c`の間にあってもなくてもマッチ) |
| 8 | + | 直前の正規表現の1回以上の繰り返し。 Ex) `/.+/`にマッチする文字列: `a`, `aa` |
| 9 | {n} | 直前の正規表現のn回の繰り返し。 Ex) `/a{3}/`にマッチする文字列: `aaa`, `baaac` |
| 10 | {n,m} | 直前の正規表現のn回からm回の繰り返し。 Ex) `/a{3,5}/`にマッチする文字列: `aaa`, `baaaaac` |
| 11 | [文字リスト] | `[ ]` の中のいずれか1字にマッチします。 Ex) `/[a1あ]/`にマッチする文字列: `aaa`, `100`, `あいてむ` |
| 12 | [^文字リスト] | `[ ]` の中に含まれない1字にマッチします。 Ex) `/[a1あ]/`にマッチする文字列: `bbb`, `555`, `ぞくせい` |
| 13 | [文字-文字] | `[ ]` の中の2つの文字と辞書順に並べた時に両文字の間に来る文字1字にマッチします。 Ex) `/[a-z]+/`にマッチする文字列: `apple`, `orange` |
| 14 | ( ) | `( )` の中の正規表現をグループ化して1つの正規表現とする。 Ex) `/(abc)+/`にマッチする文字列: `abc`, `abcabc`, `abcabcabc` |
| 15 | (?: ) | `( )` の中の正規表現をグループ化して1つの正規表現とする(前方参照なし)。 Ex) `/(abc)+/`にマッチする文字列: `abc`, `abcabc`, `abcabcabc` |
## 9.2 付録 A: 正規表現(2): 置換処理
関連設定項目: [`data_preprocess_replaces`](#data_preprocess_replaces)
- 正規表現を用いた `置換処理` では、元の文字列中から、正規表現で指定したパターンにマッチする部分文字列を、別の文字列に書き換えることが出来ます。
- 置換対象の文字列を、固定の文字列ではなくて、パターンで指定するので、様々な入力データに対する置換処理を容易に記述可能です。
- 又、正規表現パターン中で、 `( )` で括った箇所の文字列を、置換後の文字列の中で、`( )` の記載順に、 `$1`, `$2`, ... として参照して利用できるので、柔軟な置換処理が行えます。
- 例えば、置換処理 `/^(.*)$/ => './details?item_id=$1` を指定すると、元データ: `AAA-001` に対して、 `./details?item_id=AAA-001` という文字列が生成され、アイテムIDからURLへの置換等に利用可能です。
- 前項の様に、 `( )` で括った箇所にマッチする部分文字列を、置換後の文字列指定の中で使うことを、 `キャプチャ機能を利用する` と呼ぶことがあります。
- MSでは、この置換処理におけるキャプチャ処理の利用が拡張されています。(詳細別項)
## 9.3 付録 A: 正規表現(3): 置換処理による文字種変換/正規化(キャプチャ処理のMS拡張)
関連設定項目: [`data_preprocess_replaces`](#data_preprocess_replaces)
- MSシステムでは、アイテムデータTSV取り込み時のデータ前処理におけるデータ置換処理が、下記の様に拡張されています。
- 正規表現を使った置換処理では、正規表現内の部分パターンにマッチした実際の文字列を、置換文字列の中に埋め込むんで使用することができます。この機能を `キャプチャ` 機能と呼びます。
- MSシステムでは、このキャプチャを使った置換処理が拡張されており、キャプチャした文字列を単に置換先に埋め込むだけでなく、大文字・小文字変換等を行えます。
- MSシステムでのデータ前処理における置換時のキャプチャの拡張は、下例の様に利用できます。
- \[置換処理指定内容]: `/(ABC)(DEF)/ => '$1,$LOWER(2)'`
- \[置換対象データ]: `'ABCDEF'`
- \[置換後データ]: `'ABC,def'`
- 前項の様に、通常、キャプチャした文字列の参照は、`$1`, `$2`, ... と行うところ、 `$LOWER(1)` (小文字化), `$UPPER(2)` (大文字化), `$HANKAKU(1)` (半角化) 等と、文字種変換操作を指定して埋め込むことが可能です。
- 文字種変換操作を重ねて実行することができます。例えば、小文字化と半角化を両方行う場合、`$LOWER*HANKAKU(1)` 等と記述して、下例の様に利用できます。
- \[置換処理指定内容]: `/^(.*)$/ => '$LOWER*HANKAKU(1)'`
- \[置換対象データ]: `'ABCdef GHI123'`
- \[置換後データ]: `'abcdef ghi123'`
| No | パラメータ | 内容 | 詳細 |
|:--:|:-----------------|:--------------------|:----------------------------------------------------------------------------------------------------------------------------------------|
| 1 | VALUE | 値そのもの | 値そのまま Ex) `value -> value` |
| 2 | @@NORMALIZE@@ `確認` | 正規化 | 正規化:次の3つの正規化を実行 `TRIM`, `NORM_SPACE`, `NORM_HAN_ZEN` Ex) `' <ホワイト>: 白 ' -> '<ホワイト>:白` |
| 3 | @@TRIM@@ `確認` | 正規化:先頭・末尾空白削除 | 正規化:先頭・末尾の空白系文字の削除 Ex) `' <ホワイト>: 白 ' -> '<ホワイト>: 白'` |
| 4 | NORM_SPACE | 正規化: 空白系文字の統合 | 正規化:連続する空白系文字を1つの半角スペースに置き換え Ex) `' <ホワイト>: 白 ' -> ' <ホワイト>: 白 '` |
| 5 | NORM_HAN_ZEN | 正規化:半角/全角 | 正規化:英数記号の半角化。半角カナの全角化 Ex) `' <ホワイト>: 白 ' -> ' <ホワイト>: 白 ` |
| 6 | @HANKAKU@ `確認` | 文字種変換:半角化 | 文字種変換:半角化(英数・記号。半角化してASCII文字になる範囲のみ対象。カナは対象外) Ex) `ホワイトAB -> ホワイトAB` |
| 7 | ZENKAKU | 文字種変換:全角化 | 文字種変換:全角化(英数・記号。ASCII文字の範囲のみ対象。カナは対象外) Ex) `ホワイトAB -> ホワイトAB` |
| 8 | @LOWER@ `重要` | 文字種変換:小文字化 | 文字種変換:小文字化(英字対象。半角英字は半角のまま、全角英字は全角のまま、小文字化) Ex) `ABCdef -> abcdef` |
| 9 | @UPPER@ `重要` | 文字種変換:大文字化 | 文字種変換:大文字化(英字対象。半角英字は半角のまま、全角英字は全角のまま、大文字化) Ex) `ABCdef -> ABCDEF` |
| 10 | CAPITALIZE | 正規化:先頭大文字化 | 正規化:先頭大文字化(対象文字列を1つの単語として、1文字目を大文字、2文字目以後を全て小文字化) Ex)' `my class -> My class` |
| 11 | CAMEL_CASE | 正規化:キャメルケース(単語連結) | 正規化:キャメルケース化(各単語の語頭を大文字化して各単語を連結) Ex) `my class -> MyClass` |
| 12 | CAMEL_CASE_SEPARATED | 正規化:キャメルケース(単語非連結) | 正規化:キャメルケース化(各単語の語頭を大文字化。単語の連結はしない) Ex) `my class -> My Class` |
| 13 | COMPACT | 正規化:空白系文字削除 | 正規化:空白系文字削除(文字列の先頭・末尾以外のものを含め空白系文字を全て削除 Ex) `' A BC ' -> 'ABC'` |
| 14 | HIRAGANA | 表記:ひらがな化 | 表記:日本語文字のひらがな化(漢字の読み仮名の適切さは文脈によります。又随時読み仮名が変更される可能性が有ります。読み仮名の正確性や一貫性が必要な場合は使用しないでください。) Ex) `平仮名 -> ひらがな` |
| 15 | KATAKANA | 表記:カタカナ化 | 表記:日本語文字のカタカナ化(漢字の読み仮名の適切さは文脈によります。又随時読み仮名が変更される可能性が有ります。読み仮名の正確性や一貫性が必要な場合は使用しないでください。) Ex) `片仮名 -> カタカナ` |
| 16 | ROMAJI_HEBON | 表記:ローマ字(ヘボン式)化 | 表記:日本語文字のローマ字(ヘボン式)化(漢字の読み仮名の適切さは文脈によります。又随時読み仮名が変更される可能性が有ります。読み仮名の正確性や一貫性が必要な場合は使用しないでください。) Ex) `システム -> shisutemu` |
| 17 | ROMAJI_KUNREI | 表記:ローマ字(訓令式)化 | 表記:日本語文字のローマ字(訓令式)化(漢字の読み仮名の適切さは文脈によります。又随時読み仮名が変更される可能性が有ります。読み仮名の正確性や一貫性が必要な場合は使用しないでください。) Ex) `システム -> sisustem` |
| 18 | PINYIN | 表記:ピンイン(中国語音韻表記)化 | 表記:中国語文字のピンイン化(漢字の読み肩の適切さは文脈によります。又随時読み方が変更される可能性が有ります。読み方の正確性や一貫性が必要な場合は使用しないでください。) Ex) `系统 -> xìtong` |
| 19 | URLENCODE_WHOLE | エンコード:URLエンコード(URL全体) | URLエンコード:URL全体を対象としたエンコード |
| 20 | URLENCODE_QUERY | エンコード:URLエンコード(URLクエリ全体) | URLエンコード:URLの内、クエリ部分の全体(Ex. `q=phrase&max=10&start=1`)を対象としたエンコード |
| 21 | URLENCODE_STRING | エンコード:URLエンコード(URLパス/クエリ値) | URLエンコード:URLの内、パス、クエリ値を対象としたエンコード |
| 22 | URLDECODE_STRING | デコード:URLデコード(URLパス/クエリ値) | URLデコード:URLの内、パス、クエリ値を対象としたデコード |
## 9.4 付録 A: 正規表現(4): 置換処理による他属性値の読み込み
関連設定項目: [`data_preprocess_replaces`](#data_preprocess_replaces)
- MSシステムでは、アイテムデータTSV取り込み時のデータ前処理におけるデータ置換処理が、下記の様に拡張されています。
- 正規表現を使った置換処理で、置換後の文字列の中に、同レコード内の他の属性値を埋め込むことが出来ます。
- MSシステムでのデータ前処理における置換時の他属性値の埋め込みの拡張は、下例の様に利用できます。
- 置換後の文字列に、`$PROP(<属性キー>)` と記述することで、そこに指定した属性の値が埋め込まれます。 Ex)`'[$PROP(item_id)]'`
- この他属性値埋め込み拡張と、前項の文字種変換拡張を組み合わせることも出来ます。 Ex)`'$PROP*LOWER(item_id)]'` 他属性値の読み込みと、小文字化変換。
* 下例は、4属性の元TSVデータから、7属性のアイテムデータを生成している例を示している
<例: アイテムデータTSV: @@元データ@@>
| item_id | price | category | features |
|:-------:|:--------|:-----------|:---------------|
| 0001 | $150 | G001 | Sharp |
| 0002 | $300 | G002 | Sharp, Metalic |
| 0003 | $500 | Z001 | Soft |
<例: 属性定義TSV: @@置換定義@@>
| key | item_id | price | category | features | item_name | item_url | description |
|:--------------------------|:-------:|:-------------|:---------------|:---------|:-------------------|----------|:------------|
| data_type | string | integer | string | string | string | string | string |
| data_structures | | | | set | | | |
| data_preprocess_replaces | | /^\\$/=>'' | 'Categroy:$0' | | 'i-$PROP(item_id)' | '/details/$PROP(category)/$PROP(item_id).html' | 'Features:[$PROP*LOWER(fetures)]'|
| search_result_table_order | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
<例: 検索結果表: @@置換結果データ@@>
| item_id | price | category | features | item_name | item_url | description |
|:-------:|:--------|:--------------|:---------------|:-----------|:------------------------|:---------------------------|
| 0001 | 150 | Category:G001 | Sharp | i-0001 | /details/G001/0001.html | Features:[sharp] |
| 0002 | 300 | Category:G002 | Sharp, Metalic | i-0002 | /details/G002/0002.html | Features:[sharp, metalic] |
| 0003 | 500 | Category:Z001 | Soft | i-0003 | /details/Z001/0003.html | Features:[soft] |
<例: 上例置換編集内容: @@注釈@@>
| 属性 | 編集置換内容 |
|:------------|:----------------------------------------------------------------------------------------------------------------|
| item_id | 編集なし |
| price | 先頭の'$'を削除して数値型データとして取り扱える様に置換。 `/置換パターン/ => '置換結果文字列'` の記法。 |
| category | カテゴリIDの前に、'Category:'の文言を付加。 `'置換結果文字列’` の記法。置換パターンが `/^.*$/` の場合は省略可能で`$0` として元データを参照できる |
| features | 編集なし |
| item_name | item_idの前に'i-'を付加。 `$PROP(item_id)` で TSV内の `item_id` の値を読み込み。 |
| item_url | item_idとcategoryの値を組み合わせてURLを生成。category属性の例の様に、$PROPで読み込まれるデータは、読み込み先属性の置換後ではなく、置換前のTSV生データ |
| description | features属性の値を読み込み。`$PROP*LOWER(features)` によって、features値の小文字化変換も実行 |
# 10. 付録 B: 属性定義簡易表 (チートシート)
使用頻度の高い、主要な属性オプションの用法をまとめています。詳細は本ページの各項をご確認ください。
```
<基本設定>
属性キー: key に指定。半角英数と半角アンダーバー('_')のみ利用可能。先頭は、半角英字。
データ型: data_type に指定。文字列=>string, 整数=>integer, 小数=>float, HTML=>html
データ構造: data_structure に指定。通常=>指定なし, リスト=>set, 範囲=>range
表示名: label に 各所で表示する属性名を指定
<検索条件>
for_freeword: フリーワード検索対象の場合 "on" を指定
search_condition_order: 表示順
search_condition_type: 検索UI種類。データ型に応じてカンマ区切りで複数指定可能。複数選択=>multiple, 範囲スライダー=>range_slider, 直接入力=>direct, 有効値範囲=>valid
search_condition_folding: 検索条件を開閉可能にする場合、初期状態「開」は "open", 「閉」は "close" を指定
search_condition_arrangement: 多肢選択の項目の並べ方。 詰めて表示=>no, 1列表示=>1, 2列表示=>2, ...
search_condition_items_height_max: 多肢選択の項目欄の最大高さ。項目が多くて下にはみ出る場合は縦スクロール。Ex) 300px
<並び替え条件>
(以下は、昇順・降順ともに指定する場合の例。昇順・降順のどちらかだけ指定する場合はカンマで区切らず片方だけの記載で良い。)
表示順: search_sort_option_order: 昇順として表示する項目順序,降順として表示する項目順序
search_sort_option_label: 昇順として表示する項目表示ラベル1,降順として表示する項目表示ラベル2
search_sort_option_asc_desc: asc,desc
<検索結果表>
表示: search_result_table_order に 表示順序を指定
画像として表示: search_result_table_value_image に "1" を指定
リンクを設置: search_result_table_link に リンク先URLの値を持つ属性keyを指定
リンクを設置する際に、リンク先URLが空の場合に、そのセルの値を空として表示する場合 search_result_table_blank_nolink に "1" を指定
<比較表>
表示: compare_table_order に 表示順序を指定
画像として表示: compare_table_value_image に "1" を指定
リンクを設置: compare_table_link に リンク先URLの値を持つ属性keyを指定
リンクを設置する際に、リンク先URLが空の場合に、そのセルの値を空として表示する場合 compare_table_blank_nolink に "1" を指定
ブラウザでのみ表示し、印刷に含めない場合: compare_table_output_target に "browser" を指定
```
## 改訂履歴
- 2023.09.14: 10. 付録 B: 属性定義簡易表 (チートシート) を追加。
- 2023.07.16: 検索結果表のセル値のJS式指定についての説明を更新。
- 2023.07.10: 検索条件UIの種別指定に、inside, over, partial の設定について記述を追加。
- 2023.01.16: 検索結果表のカラムラベルの階層指定について記述。
- 2022.04.30: 正規表現置換のMS拡張における他属性読み込み機能について記述。
- 2022.03.09: 検索条件の多肢選択項目ラベル値のJS指定の項目追加。
- 2022.02.27: 検索条件(マスタありドリルダウン定義)項目追加。
- 2022.02.27: 正規表現置換についてのMS拡張機能についての項目を追加。
- 2022.02.27: データ前処理(データ編集処理)項目追加。
- 2022.02.24: 検索条件(マスタなしドリルダウン定義)項目追加。
- 2022.02.24: 正規表現についての付録記載追加
- 2022.02.24: 基本定義の データ前処理 (data_preprocess_filters系統詳細) についての説明項目を追加
- 2022.02.20: サンプル追加
- 2022.01.24: 新規公開