私はこのステムフィールドを持っています:
<fieldtype name="textes" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords-es.txt" enablePositionIncrements="true"/>
<filter class="solr.SnowballPorterFilterFactory" language="Spanish" protected="protwords-es.txt"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.SnowballPorterFilterFactory" language="Spanish" protected="protwords-es.txt"/>
</analyzer>
</fieldtype>
検索クエリalquileres(rents)の期待される結果は、 alquiler(rent)と一致します。しかし、Solr Adminサイトの「FieldAnalysis」にアクセスして、のインデックス値alquilerとクエリ値を確認するとalquileres、次のようになります。
- インデックスを作成
alquilerすると、にステム処理されalquilます。 - クエリ
alquileresを実行すると、にステミングされalquilerます。
したがって、単語の複数形()を検索する単純なケースは、alquileresその単数形()と一致しませんalquiler。
インデックスとクエリの両方を同じ語幹(alquilerまたはalquil)にまとめるべきではありませんか?これはアルゴリズムの制限ですか、それとも私の側からの誤解/設定ミスですか?