我在我的模式文件中添加了 LanguageAnalysis。添加后这个词干过滤器工厂已经开始工作,但这让我的一些词无法搜索。
我在 .
我的架构文件如下所示:
<schema name="test" version="1.50">
<types>
<fieldType name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true" />
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0" omitNorms="true"/>
<fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>
<fieldType name="date" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/>
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="100" side="front"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="100" side="back"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
</types>
<fields>
<field name="Id" type="int" indexed="true" stored="true" required="true" />
<field name="Name" type="text" indexed="true" stored="true" required="false" />
<field name="ShortDescription" type="text" indexed="true" stored="true" required="false" />
<field name="FullDescription" type="text" indexed="true" stored="false" required="false" />
<field name="_version_" type="long" indexed="true" stored="true"/>
</fields>
<uniqueKey>Id</uniqueKey>
<copyField source="Name" dest="NameCopy"/>
<defaultSearchField>Name</defaultSearchField>
<solrQueryParser defaultOperator="OR"/>
</schema>
添加 solr.PorterStemFilterFactory 后,一些特定的词(如电池、创新等)变得不可搜索。
为什么会这样?我还尝试了另一个过滤器工厂来进行词干提取和语言分析,但它们的行为也与此相同。
请帮我。我很困惑这里出了什么问题!