SolR 3.6 から 4.0 への移行を検討しています。
私は 2500 個以下のドキュメントを持つ小さなシステムを開発しました。さらに、変更のたびにシステムの機能が低下しないことを確認するために、4100 以上のテストを開発しました。
この移行では、独自の fieldType を追加するだけで、Solr 4.0 のデフォルト設定を維持しました (schema.xml と solrconfig.xml で多くの新しい設定を見てきました)。
したがって、同義語を使用しない最初の実行では、バージョン 4.0 と 3.6 の違いは 4100 から 1 文 (4.0 では 3.6 よりもうまく機能するフレーズ) にすぎませんでした。 4.0 ではさらに悪い結果になります。
私のfieldTypeは次のとおりです:
<fieldType name="text_es_lemma" class="solr.TextField" positionIncrementGap="100">
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.lnk" ignoreCase="true" expand="false"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.lnk" format="snowball" enablePositionIncrements="true"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="myownlibrary.solr.analysis.SpanishLemmaFilterFactory" dictionary="lang/avatar_dictionary/adj_num_ord-lex.src,lang/avatar_dictionary/basic-lex.src" ignoreCase="true"/>
</analyzer>
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.lnk" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.lnk" format="snowball" enablePositionIncrements="true"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="myownlibrary.solr.analysis.SpanishLemmaFilterFactory" dictionary="lang/avatar_dictionary/adj_num_ord-lex.src,lang/avatar_dictionary/basic-lex.src" ignoreCase="true"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory" />
</analyzer>
</fieldType>
シノニムを含むファイルは、両方のバージョンで同じです。
4.0 と 3.6 でシノニムの使用方法に違いはありますか? 4.0 では別の方法で指定する必要がありますか?