LoginSignup
2
2

More than 5 years have passed since last update.

MappingCharFilterFactory の使い方

Posted at

MappingCharFilterFactory とは

MappingCharFilterFactory は Tokenizer が処理を行う前段階で、文字に対する処理を行うコンポーネントのひとつ。

文字(文字列)を別の文字(文字列)に変換することができる。

主な利用目的は検索対象文字列の揺れの吸収。

変換パターンは以下の例が考えられる。

#半角→全角
ア=>ア
A=>A
#全角→半角
イ=>イ
U=>U
#半角カナ二文字→全角カナ一文字
バ=>バ
#全角カナ一文字→半角カナ一二文字
ビ=>ビ
#記号→全角カナ
㍗=>ワット
㌔=>キロ

上記の変換ルールをファイルに定義して利用する。

MappingCharFilterFactoryの設定方法

設定項目

設定できる項目は、文字列変換ルールを記述したファイル(マッピングファイル)のみ

schema.xmlの設定例

<fieldType name= (略
  <analyzer>
    <charFilter class="solr.MappingCharFilterFactory" mapping="mapping.txt" />
    <tokenizer class="(略
  </analyzer>
</fieldType>

マッピングファイルの注意点

  1. 文字コードはUTF-8
  2. カンマが含まれるファイル名を指定する場合は \ でエスケープする
  3. 変換前の文字列が重複しているとエラーになる

マッピングファイルの書き方

  1. 変換前の文字列と返還後の文字列をそれぞれダブルクォートでくくり、間に=>を記述する
  2. 各行は次のパターンにマッチしていればよい

    "(.*)"\s*=>\s*"(.*)"\s*$
    
  3. # から始まる行はコメント行

  4. ファイルの文字コードはUTF-8で、変更はできない

  5. BOMはあってもなくてもよい

  6. エスケープ文字は以下のものが利用できる

    "タブ"=>"\t"
    "\r\n"=>"\n"
    "バックスペース"=>"\b"
    "円"=>"\\"
    "ユニコードあ"=>"\u3042"
    
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2