カスタム プラグインを使用して、solr で多数の xml をインデックス化しています。このプラグインが行うことは、ドキュメントに「タグ付け」し、それらのタグ (カンマ区切り) を複数値フィールドに追加することです。
これは私のログの中にあるものです:
...
[MULTIVALUE CAR TYPE - final result] -> 4 Dr. Wagon with Wagon, 4X4,
...
これは、ファセット時に実際に solr インスタンス内にあるものです。
<lst name="car_type_multivalue">
<int name="convertible">331</int>
<int name="4">152</int>
<int name="x">152</int>
<int name="wagon">121</int>
フィールドの定義方法は次のとおりです。
<fieldType name="text" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
</analyzer>
</fieldType>
ご覧のとおり、4x4 はドキュメントのタグに正しく追加されていますが、ファセットされると、実際には "4" と "x" に分割されます。私のフィールドタイプはこのようなことを許可していないようなので、問題はなぜsolrがこのように振る舞うのかということです. 他のすべての値は正しく機能しますが、「4x4」では機能しません。タグで「x」を見つけるたびに、何があっても分割されると思いますか? 皆さんありがとう!