全角/半角、ひらがな/カタカナを同一視して検索できますか?
Kurocoのコンテンツの検索機能(topics_keyword、full_text_search、Filter検索)には、全角/半角、ひらがな/カタカナを同一視する設定はありません。
同一視して検索したい場合は、full_text_search を利用し、以下の2つの文字列を mb_convert_kana で同じ形式に変換します。
- キーワードテンプレートで登録する検索用の文字列
- APIにリクエストされた検索キーワード
full_text_search では、英字の大文字/小文字は変換しなくても区別されません。詳しくはKurocoのキーワード検索の種類を参照してください。
変換に使用するオプション
mb_convert_kana は、Smartyの修飾子として |mb_convert_kana:'オプション' の形式で利用できます。
以下は KVCas を指定した場合の例です。
| オプション | 変換内容 | 変換例 |
|---|---|---|
K V | 半角カタカナを全角カタカナに変換します(V は濁点・半濁点付きの文字を1文字にします) | ガイド → ガイド |
C | 全角ひらがなを全角カタカナに変換します | がいど → ガイド |
a | 全角英数字・記号を半角に変換します | ABC123<> → ABC123<> |
s | 全角スペースを半角スペースに変換します | → |
キーワードテンプレートで検索用の文字列を変換する
コンテンツ定義の編集画面で「キーワード検索にテンプレートを利用する」にチェックを入れ、「キーワードテンプレート」に出力する値へ mb_convert_kana を指定します。
以下はタイトルと内容を変換して出力する例です。
{* タイトル *}
{$details.subject|mb_convert_kana:'KVCas'|escape}
{* 内容 *}
{$details.contents|strip_tags|mb_convert_kana:'KVCas'|escape}
キーワードテンプレートの設定方法は、キーワード検索用文字列を用意するを参照してください。
登録済みのコンテンツの検索用の文字列は、topics_keyword バッチ(1時間毎)でキーワードテンプレートの内容を元に更新されます。詳しくはデフォルトのバッチ処理 一覧を参照してください。
前処理で検索キーワードを変換する
コンテンツ一覧のエンドポイントの前処理で、リクエストされた full_text_search をキーワードテンプレートと同じオプションで変換します。
{assign_array var="request" values=""}
{if $smarty.get.full_text_search}
{assign
var="request.full_text_search"
value=$smarty.get.full_text_search|mb_convert_kana:'KVCas'}
{/if}
作成したカスタム処理をエンドポイントの前処理に関連付けると、full_text_search=がいど や full_text_search=ガイド でリクエストした場合も、ガイド を含むコンテンツが検索されます。
前処理の設定方法は、カスタム処理を利用して、APIのメイン処理に渡すリクエスト値を書き換えるを参照してください。
関連ドキュメント
サポート
お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。