Helper
in package
Table of Contents
Methods
- loadBlogFulltext() : string
- ブログのフルテキストを取得
- loadCategoryFulltext() : string
- カテゴリのフルテキストを取得
- loadEntryFulltext() : string
- エントリーのフルテキストを取得
- loadUserFulltext() : string
- ユーザーのフルテキストを取得
- normalizeSearchText() : string
- 全文検索の対象テキストを正規化する
- saveFulltext() : void
- フルテキストの保存
- fireExtendsSearchNormalization() : string
- 検索テキストの正規化拡張フックを発火する。
Methods
loadBlogFulltext()
ブログのフルテキストを取得
public
loadBlogFulltext(int $bid) : string
Parameters
- $bid : int
Return values
stringloadCategoryFulltext()
カテゴリのフルテキストを取得
public
loadCategoryFulltext(int $cid) : string
Parameters
- $cid : int
Return values
stringloadEntryFulltext()
エントリーのフルテキストを取得
public
loadEntryFulltext(int $eid) : string
Parameters
- $eid : int
Return values
stringloadUserFulltext()
ユーザーのフルテキストを取得
public
loadUserFulltext(int $uid) : string
Parameters
- $uid : int
Return values
stringnormalizeSearchText()
全文検索の対象テキストを正規化する
public
normalizeSearchText(string $text) : string
config('search_convert_kana') に mb_convert_kana() のモード文字列(例: KV)が指定されている場合に、 そのモードで変換した文字列を返す。未設定または off なら入力をそのまま返す。
半角カナの濁点・半濁点は「本体文字 + 独立した濁点記号」の 2 文字(カ + ゙)で、全角は結合済みの 1 文字(ガ)。照合順序 utf8mb4_unicode_ci はカナ単体の全角・半角差は吸収するが、この結合までは 吸収せず文字数が合わないため一致しない。インデックス生成時と検索キーワード受付時の双方で本メソッドを 通し、両者を同じ表記に寄せることで一致させる。
mb_convert_kana() での変換後、拡張アプリ・ユーザー拡張が独自の正規化(長音記号の畳み込み、
旧字体・異体字の統一など)を追加できるよう extendsSearchNormalization フックを発火する。
Why not Normalizer::normalize(): NFKC は intl 拡張を要求するため、動作環境の前提を上げずに済む mbstring で実現する。 Why not 不正なモードでの警告ログ: 本メソッドは検索リクエストごと・インデックス保存ごとに呼ばれる ため、設定ミス時にログが際限なく膨らむ。加えて mb_convert_kana() は不正なモードで ValueError を投げ、 検索ページ全体が落ちてしまうので、事前に弾いて変換なしにフォールバックする。
Parameters
- $text : string
Return values
stringsaveFulltext()
フルテキストの保存
public
saveFulltext(string $type, int $id[, string|null $fulltext = null ][, int|null $targetBid = null ]) : void
Parameters
- $type : string
-
フルテキストのタイプ
- $id : int
- $fulltext : string|null = null
- $targetBid : int|null = null
-
保存先ブログ ID。null / 省略時は現在のブログ(BID)
fireExtendsSearchNormalization()
検索テキストの正規化拡張フックを発火する。
private
fireExtendsSearchNormalization(string $text) : string
フック発火(グローバルな ACMS_Hook へのアクセス)を本メソッドに閉じることで、 normalizeSearchText() 自体は引数を受け取って返すだけの純粋な形を保ち、単体テスト可能性を保つ。 Hook 無効時(HOOK_ENABLE が偽)は何もしない。
Parameters
- $text : string
-
mb_convert_kana() 適用後のテキスト