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が見つからない、という)例外が起こる。