Kurocoのキーワード検索の種類
Kurocoには3つの異なるタイプのキーワード検索機能があり、それぞれに特徴とユースケースがあります。このリファレンスでは、各タイプの特性、仕様、使用パターンについて説明します。
検索タイプの概要
| 検索タイプ | 説明 | ユースケース | 
|---|---|---|
| topics_keyword | 特別な設定不要で各項目を自動的に検索 | 基本的なキーワード検索の迅速な実装 | 
| full_text_search | テンプレートから生成された文字列を高パフォーマンスで検索 | カスタム検索コンテンツによる複数カラム検索 | 
| Filter検索 | 複雑な条件を持つフィルタークエリを使用 | 複数の条件と演算子を使用した高度な検索 | 
topics_keyword
topics_keyword検索は、コンテンツ内の各項目を自動的に検索します。
この機能は一部のサイトではすでに使えなくなっているため、Filter検索のご利用をお勧めいたします。
特徴
- コンテンツ内の各項目を自動的に検索
 - スペースで区切られたキーワードはデフォルトでAND検索を実行
 - パラメータでAND検索をOR検索に変更可能
 - 英数字の大文字小文字は区別しない
 - 検索するカラムを指定可能
 - 最小限の設定で簡単に実装可能
 
検索可能な項目タイプ
topics_keywordは以下の項目タイプを自動的に検索します:
標準フィールド:
subject- コンテンツのタイトル/件名フィールドcontents- メインコンテンツのテキストフィールドtopics_id- コンテンツID(キーワードが数字の場合)slug- コンテンツのSlugcontents_type- コンテンツタイプ/カテゴリ(カテゴリ名で検索します。)
拡張フィールド:
- テキスト
 - テキスト(オートコンプリート)
 - テキストエリア
 - WYSIWYG
 - HTML
 - 単一選択:key, label の両方を検索
 - 複数選択可:key, label の両方を検索
 - 日付フォーマット
 - マスタ形式:key, label の両方を検索
 - マスタ(チェックボックス):key, label の両方を検索
 - 関連情報選択:module_id, module_type を使用して検索
 - 真偽値フィールド:true/false を文字列として検索
 - 画像(KurocoFilesにアップロード):desc を使用して検索
 - ファイル(KurocoFilesにアップロード):desc を使用して検索
 - ファイル(ファイルマネージャーから): ファイルパスを検索
 - APIフィールド
 - カウンター: 文字列として検索
 - リンク:url, tilte の両方を検索
 - 数値: 文字列として検索
 - 表組(テーブル)
 - 地図
 
target_col_for_keywordパラメータを使用して、特定のフィールドに検索を制限してご利用ください。
パラメータ
| パラメータ | 型 | 説明 | デフォルト | 
|---|---|---|---|
| topics_keyword | string | 検索するキーワード | - | 
| topics_keyword_cond | string | 複数キーワードの条件:"AND"または"OR" | "AND" | 
| target_col_for_keyword | string/array | 検索対象のカラム(例:"subject"、"contents", "ext_1") | すべての検索可能なカラム | 
| use_target_col_for_keyword_from_request | boolean | クエリでtarget_col_for_keywordの指定を許可 | false | 
多言語サポート
- 副言語で検索するには、
_langパラメータを使用(例:?_lang=en) - 検索は指定された言語で自動的に機能します
 
使用例
/rcms-api/1/content?topics_keyword=例&topics_keyword_cond=OR
注意点
- 実装は簡単ですが、複雑な条件はサポートしていません
 - より高度な検索には、Filter検索の使用を検討してください
 
full_text_search
full_text_searchは、テンプレートを使用して検索可能なテキスト文字列を生成し、複数のカラムにわたる高性能な検索を提供します。
特徴
- テンプレートで生成された文字列を検索
 - 複数カラム検索に対する高パフォーマンス
 - スペースで区切られたキーワードはデフォルトでAND検索を実行
 - パラメータでAND検索をOR検索に変更可能
 - コンテンツ定義でのキーワードテンプレート設定が必要
 - 関連コンテンツやメンバー情報を検索テキストに含めることが可能
 
パラメータ
| パラメータ | 型 | 説明 | デフォルト | 
|---|---|---|---|
| full_text_search | string | 検索するキーワード | - | 
| full_text_search_cond | string | 複数キーワードの条件:"AND"または"OR" | "AND" | 
多言語サポート
- 副言語で検索するには、
_langパラメータを使用(例:?_lang=en) - 検索は指定された言語で自動的に機能します
 
テンプレート設定
full_text_searchを使用するには以下の設定が必要です。
- コンテンツ定義設定で「キーワード検索にテンプレートを利用する」を有効にする
 - Smarty構文を使用してテンプレートを設定する
 
使用例
/rcms-api/1/content?full_text_search=例&full_text_search_cond=AND
注意点
- 検索可能な文字列はコンテンツごとに100MBに制限されています
 - 検索可能な文字列内の半角英字は自動的に小文字に変換されます
 - 実装の詳細については、キーワード検索用文字列を用意するを参照してください
 
Filter検索
Filter検索は、フィルタークエリ機能を使用して、様々な条件と演算子による複雑な検索を実行します。
特徴
- フィルタークエリで
containsのオペレータを使用すると指定の項目に対して部分一致で検索が可能(キーワード検索) - フィルタークエリで
search_keywordパラメータを使用すると複数の項目に対する検索が可能 - 複数の演算子による複雑な検索条件をサポート
 - AND/ORを使用して他のフィルター条件と組み合わせ可能
 - 大文字小文字を区別する検索と区別しない検索オプションを提供
 - 特定のカラムにわたって検索可能
 
containsで検索可能なフィールド
Filter検索のcontains, icontains, ncontains, nicontainsで文字列の部分一致を元に検索可能なカラムには以下があります:
標準フィールド:
subject- コンテンツのタイトル/件名フィールドslug- コンテンツのSlugcontents- メインコンテンツのテキストフィールド
拡張フィールド:
- テキスト
 - テキスト(オートコンプリート)
 - テキストエリア
 - WYSIWYG
 - HTML
 - 単一選択:keyに対する検索
 - 複数選択可:keyに対する検索
 - 日付フォーマット
 - マスタ形式:keyに対する検索
 - マスタ(チェックボックス):keyに対する検索
 - 真偽値フィールド:true/false を文字列として検索
 - 画像(KurocoFilesにアップロード):desc を使用して検索
 - ファイル(KurocoFilesにアップロード):desc を使用して検索
 - ファイル(ファイルマネージャーから): ファイルパスを検索
 - APIフィールド
 - リンク:url, tilte の両方を検索
 - 表組(テーブル)
 
Filter検索の対象とする項目はエンドポイントのfilter_request_allow_listパラメータで許可されている必要があります。
search_keywordによる複数項目検索
search_keyword contains "KEYWORD"の形式で指定すると、事前に指定した複数のコンテンツに対して contains による絞込みができます。
項目はfilter_request_allow_listにsearch_keyword:[subject,ext_1]のように指定します。
多言語サポート
- 副言語で検索するには、
filter_langパラメータを使用(例:?filter_lang=en) - フィルター検索では、検索対象とする言語(
filter_lang)とレスポンスの言語(_lang)を別に設定できます 
使用例
特定の項目に対するキーワード検索:
?filter=ext_1 contains "例"
複数の項目を指定したキーワード検索:
?filter=ext_1 contains "例" OR ext_2 contains "例2"
大文字小文字を区別しない検索:
?filter=ext_1 icontains "例"
Not検索:
?filter=ext_1 ncontains "除外ワード"
他の条件との組み合わせ:
?filter=ext_1 contains "例" AND inst_ymdhi > "2023-01-01"
search_keywordによる複数項目検索
// 事前にエンドポイントに filter_request_allow_list keyword:[subject,ext_1] を設定
?filter=search_keyword contains "例"
注意点
- 繰り返しフィールドの場合、検索は項目全体に適用されます
 - 一部のサイトでは
search_keywordではなくkeywordでの検索となります。 - Filter検索はキーワード以外の検索にも利用可能です。詳細は以下を参照してください。
 
関連ドキュメント
サポート
お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。