関連しているデータを条件にしたfilter機能
ここではfilter機能で、関連しているデータを条件にして検索をする方法を紹介します。
:R(%module_name%:q|%filter_query%|)
の形式でフィルターを作成することで、
関連情報に対する絞り込み条件を指定できるほか、キーワードとタグを組み合わせて検索するなど、柔軟な検索ができます。
:R()検索は主言語に対してのみ実行可能です。多言語設定を有効にしていても紐づくコンテンツは主言語が元になりますのでご注意ください。
設定方法
事前準備
関連情報に対する絞り込みを行うためには、まずfilter_request_allow_list
で利用を許可するモジュールを設定します。
以下の形式でfilter_request_allow_list
を記述します。
:q|%module_name%:[%column_name1%,%column_name2%]
例::q|topics:[topics_group_id,subject]
-> サブクエリに topics_group_id, subject の指定を許可。
また、:q|tag:[:ALL]
のようにサブクエリを:ALL
で指定も可能です。
指定できるサブクエリは利用できる項目を参照してください。
絞り込み条件の変化
Topics, Tag, Inquiryは、allow_listの設定内容に応じてデフォルトの絞り込み条件が変化します。
- Topics, Tag
- allow_listにopen_flgを含まない場合、公開状態のコンテンツ/タグのみが検索対象になります。
- allow_listにopen_flg(または:ALL)を含む場合、非公開のコンテンツ/タグも含めて検索対象になります。
- Inquiry
- allow_listにstatusを含まない場合、運用中のフォームのみが検索対象になります。
- allow_listにstatus(または:ALL)を含む場合、休止中のフォームも含めて検索対象になります。
フィルター指定例
Tag::listのAPIでtopics_group_id=1 のコンテンツに紐付くタグを取得
filter
: :R(topics:q|topics_group_id eq 1|)
filter_request_allow_list
: :q|topics:[topics_group_id]
Topics::listのAPIでtag_id=50 のタグに紐付くコンテンツを取得
filter
: :R(tag:q|tag_id in [50]|)
filter_request_allow_list
: :q|tag:[tag_id]
Topics::listのAPIでキーワードとタグでAND検索
filter
: search_keyword contains "テスト" AND :R(tag:q|tag_id in [50]|)
filter_request_allow_list
:[search_keyword,:q|tag:[tag_id]]
Topics::listのAPIで特定のタグ内でOR検索をし、それぞれをAND検索する
filter
: :R(tag:q|tag_id in [7,8,9]|) AND :R(tag:q|tag_id in [5,6]|)
filter_request_allow_list
: :q|tag:[tag_id]
Topics::listのAPIでタグが設定されていないコンテンツを取得
filter
: :R(tag:empty)
Tag::listのAPIで、topics_group_id=1,2、ext_1="val"、checkbox="1" のコンテンツに紐付くタグを取得
filter
: :R(topics[topics_group_id=1,2]:q|ext_1 = "val" AND checkbox = "1"|)
filter_request_allow_list
: :q|topics[topics_group_id=1,2]:[ext_1,ext_2,text,checkbox]
注意事項
関連したコンテンツの拡張項目で絞込みを行う場合、コンテンツ定義IDはtopics_group_id=1
の指定の他、1
のように省略して書くことができますが、allow_listとfilterで[]内に指定するパラメータを一致させる必要があります。
- 動作するパターン
- filter_request_allow_list: topics[
topics_group_id=1
] - filter: topics[
topics_group_id=1
]
- filter_request_allow_list: topics[
- 動作しないパターン(1)
- filter_request_allow_list: topics[
topics_group_id=1
] - filter: topics[
1
]
- filter_request_allow_list: topics[
- 動作しないパターン(2)
- filter_request_allow_list: topics[
1,2
] - filter: topics[
2,1
]
- filter_request_allow_list: topics[
利用できる項目
現状、サブクエリに指定できるのは限られた標準項目のみに限定されています。
利用できるmodule_name
とそのサブクエリ(column_name
)は以下となります。
Topics
topics_id
topics_group_id
contents_type
subject
open_flg
topics_flg
regular_flg
inst_ymdhi
update_ymdhi
ext_x(slug)
Member
member_id
group_ids
inst_ymdhi
update_ymdhi
Inquiry
inquiry_id
inquiry_name
status
inst_ymdhi
update_ymdhi
Tag
tag_id
tag_nm
open_flg
inst_ymdhi
update_ymdhi
tag_category_id
ext_col_01
ext_col_02
ext_col_03
ext_col_04
ext_col_05
ext_col_06
ext_col_07
ext_col_08
ext_col_09
ext_col_10
サポート
お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。