Solrのダイナミックフィールドにマルチバイト文字を使いたいとき

Solr 6 以降の solrconfig.xml にて、

  <updateProcessor class="solr.FieldNameMutatingUpdateProcessorFactory" name="field-name-mutating">
    <str name="pattern">[^\w-\.]</str>
    <str name="replacement">_</str>
  </updateProcessor>

上記部分を確認する。
name属性が"pattern"であるstr要素に記述した「正規表現」に合致した文字を、name属性が"replacement"であるstr要素に記述した文字に置換する。初期状態では、[^\w-\.] すなわち、\w(=[a-zA-Z_0-9]:半角英数時と半角アンダースコア)と-(半角ハイフン)と\.(半角ピリオド)以外の文字すべてが、置換対象になる。

どこまで文字を許容するかに応じて、正規表現を書き換えるとよい。たとえば、

    <str name="pattern">[\h\v]</str>

などとすると、「水平方向の空白文字」(\h)と「垂直方向の空白文字」(\v)だけを_に置換する。

なお、このupdateProcessor要素自体をコメントアウトすると、UPDATE REST API実行時に(field-name-mutatingが見つからない、という)例外が起こる。