私はこのステムフィールドを持っています:
<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
)にまとめるべきではありませんか?これはアルゴリズムの制限ですか、それとも私の側からの誤解/設定ミスですか?