基本的なカスタマイズ > ユーザーインタフェースのカスタマイズ > Windchill サーチのカスタマイズ > Solr のカスタマイズ > テキストフィールドサーチのフィルタ
  
テキストフィールドサーチのフィルタ
* 
アナライザ、フィルタ、トークナイザの詳細については、次のリンクを参照してください。
各テキストフィールドでは com.ptc.solr.analysis.PTCWordDelimiterFilterFactory フィルタが使用されます。このフィルタは単語をサブ単語に分割し、必要に応じてサブ単語のグループに対して変換を実行します。単語は次の規則を使用してサブ単語に分割されます。
規則
単語内区切り文字 (デフォルトでは、英数字以外のすべての文字) で分割します。
"Wi-Fi" は "Wi" と "Fi" に分割
小文字と大文字の間で分割します。
"TransAM" は "Trans" と "AM" に分割
サブ単語の先頭または末尾にくる単語内区切り文字は無視されます。
"__hello---there, 'dude'" は "hello"、"there"、"dude" に分割
各サブ単語の末尾の "s" は除去されます。
* 
いろいろなサブ単語の組み合わせが考えられるため、このステップは別のフィルタでは実行されません。
"O'Neil's" は "O" と "Neil" に分割
このフィルタは solr.WordDelimiterFilter のレプリカで、Solr に付属します。次の文字を保護するためにカスタマイズされています: "."、"-"、"_"
分割は次のパラメータの影響を受けます。
generateWordParts=1
単語の各部分が生成されます: "whistle-blower" = "whistle" "blower"
generateNumberParts=1
数値のサブ単語が生成されます: "500-42" = "500" "42"
catenateWords=1
単語の文字部分が連結されます: "re-confirm" = "reconfirm"
catenateNumbers=1
単語の数字部分が連結されます: "500-42" = "50042"
catenateAll=1
すべてのサブ単語が連結されます: "wi-fi-4000" = "wifi4000"
splitOnCaseChange=1
小文字と大文字の間で分割: "PowerShot" = "Power" "Shot"
preserveOriginal=1
元の単語がサブ単語として追加されます: "500-42" = "500" "42" "500-42"
com.ptc.solr.analysis.PTCSpecialCharacterFilterFactory フィルタも使用されます。このフィルタでは、PTC で保護されている特殊文字で終るトークンのサブトークンが作成されます。現在のところ、保護されている特殊文字は次の 3 つだけです。
点/ピリオド (.)
ダッシュ (-)
アンダースコア (_)
サブトークンは次の規則に従って作成されます。
規則
ピリオド (.) で終るトークン
"dot." = "dot.", "dot"
ダッシュ (-) で終るトークン
"dash-" = "dash-", "dash"
アンダースコア (_) で終るトークン
"under_" = "under_", "under"
* 
インデックシング時と照会時でトークナイザの順序が変わらないようにします。照会時に生成されたトークンは、その単語のインデックシング時と同じでなければなりません。
停止語
$solr-home\wblib\conf\stopwords.txt 指定されている単語はインデックシングされません。これらの単語は、ユーザーが意味のあるサーチでは入力しないと考えられる単語にする必要があります。たとえば、"if" または "not" などです。これらの単語をサーチに含むには、stopwords.txt から除去する必要があります。
英語では、text フィールドが使用され、StopFilterFactory フィルタを使用して設定されます。
シノニム
$solr-home\wblib\conf\synonyms.txt にシノニムエントリを行うことで、1 つの単語のサーチで同義語を含むレコードを必ず見つけられるようになります。このファイルを編集してシノニムを入力または除去できます。
SynonymFilterFactory フィルタは英語の text フィールド用に設定されています。
自動コミット
Windchill では、特定の基準が満たされると、Solr 自動コミット機能を使用してインデックス情報が自動的にコミットされます。
solrconfig.xmlautoCommit を設定できます。
この基準は次のエレメントに指定されています。
<updateHandler class="solr.DirectUpdateHandler2">
<autoCommit>
<maxDocs>1000</maxDocs>
<maxTime>60000</maxTime>
</autoCommit>
maxDocs
コミットされていない Windchill ビジネスオブジェクトドキュメントの数が maxDocs に指定されている最大数を超えると、autocommit がトリガされます。
maxTime
Windchill ビジネスオブジェクトドキュメントを追加してから maxTime に指定されている最大時間 (単位: ミリ秒) を経過すると、autocommit イベントがトリガされます。
maxTime および maxDocs の値を大きくすると、インデックスサーチのパフォーマンスが向上します。
ただし、インデックス情報がコミットされなければ、サーチ結果にオブジェクトは表示されません。
* 
バルクインデックシングを実行する場合には大きな値を使用してください。
英数分割の有効化
デフォルトで、Windchill サーチでは英数遷移がトークン化されません。たとえば、文字列 "ABC123" は "ABC123" としてインデックシングされます。
Solr をカスタマイズして英数分割を有効にできます。有効にした場合、文字列 "ABC123" は次のようにインデックシングされます。
ABC123
ABC
123
英数分割を有効にするには、次の操作を実行します。
1. Windchill を中止します。
2. 以下のファイルに移動します。
/solr-home/wblib/conf/conf_generic_field_types.xml
3. splitOnNumerics="0" のすべてのインスタンスを特定します。
これを splitOnNumerics="1" に置き換えます。
4. Windchill を再起動します。
5. Windchill を再起動すると、バルクインデックスツールを使用してデータが再インデックシングされます。