最近、私はsolr 5.0からsolr 6.4.1にアップグレードしました。私はアプリをうまく走らせることができますが、問題はsolr 6のインデックスサイズが大きすぎることです。ソル5では、インデックスサイズは約15GBでしたが、ソル6では同じデータのインデックスサイズは300GBでした!私はソル6のこのような大きな違いに何が寄与しているのか理解できません。Solr動的フィールドがインデックスサイズを吹き飛ばします
私はインデックスのサイズを爆破しているフィールドを特定できました。それは以下の通りです。
<dynamicField name="*_note" type="text_general" indexed="true" stored="true" multiValued="true" />
<field name="textproperty" type="text_general" indexed="true" stored="false" multiValued="true" />
<copyField source="*_note" dest="textproperty"/>
このフィールドをコメントアウトすると、インデックスサイズが10GB未満に縮小されます。
このフィールドのタイプはtext_generalです。以下に、このタイプの定義を示します。私は、フィールドの型定義は、私はSolrの5で使用したものと同じであり、それはバージョン6にもこの有効であることを保証している
- :
私は、この問題をデバッグするためにやった<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <charFilter class="solr.HTMLStripCharFilterFactory" /> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <charFilter class="solr.PatternReplaceCharFilterFactory" pattern="((?m)[a-z]+)'s" replacement="$1s" /> <filter class="solr.WordDelimiterFilterFactory" protected="protwords.txt" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0"/> <filter class="solr.KStemFilterFactory" /> <filter class="solr.StopFilterFactory" ignoreCase="true" words="C:/Users/pratik/Desktop/solr-6.4.1_playground/solr-6.4.1/server/solr/collection1/conf/stopwords.txt" /> </analyzer> <analyzer type="query"> <charFilter class="solr.HTMLStripCharFilterFactory" /> <tokenizer class="solr.StandardTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <charFilter class="solr.PatternReplaceCharFilterFactory" pattern="((?m)[a-z]+)'s" replacement="$1s" /> <filter class="solr.WordDelimiterFilterFactory" protected="protwords.txt" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0"/> <filter class="solr.KStemFilterFactory" /> <filter class="solr.StopFilterFactory" ignoreCase="true" words="C:/Users/pratik/Desktop/solr-6.4.1_playground/solr-6.4.1/server/solr/collection1/conf/stopwords.txt" /> </analyzer> </fieldType>
いくつかのことをフィールドタイプは、索引作成中に無視される「ストップワード」のリストを考慮します。私はsolr5で使用していたストップワードのリストを提供しました。このファイルのパスが正しいことを確認し、solr admin UIに正しくロードされていることを確認しました。 solrの管理UIの[分析]タブを使用してこれらのフィールドを分析すると、ストップワードが除外されていることがわかります。しかし、これらのストップワードを使ってクエリを実行すると、ストップワードがインデックスに登録されている可能性があると思われる結果が返されます。
solr 6ではインデックスのサイズを大きくすることができますか?