我在schema.xml中使用了一个CharFilterFactory来获取fileType text_general,这样咖啡馆和咖啡馆的查询就会返回相同的结果。它工作正常。这是我的schema.xml的相关部分:
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
...但是,solr的admin用户界面中的分析工具似乎表明charfilterfactory之后的tokenizer和过滤器没有做任何事情。这是因为如果我使用索引和查询的任何字段值分析text_general,在MCF(MappingCharFilter)之后,ST,SF和LCF的输出都是空的(grrr - 屏幕转储在这里很有用,但我不允许发布一个,因为我的“声誉”显然不够高。这是预期的行为吗?有人可以请解释分析工具输出吗?