私はSolRクラウド6.5.0のインストール作業中です。 私の目標は、検索用語と一緒に出現するすべての用語を検索し、それらの順位を数え、トップNを取ることです。 これを行うにはPatternTokenizer
というTextFieldを定義するタイプtext_en_facets
のフィールドを定義しました。それ以外はほとんどありません(投稿の最後に完全な定義があります)。SolR:TextFieldのファセット化
今私のインスタンスはかなりいくつかのデータが含まれていますフィールドは、結果として、私は次のエラーを取得する、1.3M独特の用語が含まれており:
o.a.s.s.FastLRUCache Error during auto-warming of key:payload_en_facets:org.apache.solr.common.SolrException: java.lang.IllegalStateException: Too many values for UnInvertedField faceting on field…
私はいずれかが存在する場合other people had the same issueと私は思っていたことに気づきましたベストプラクティスに関するニュース、および/またはこの制限を回避する方法 StrField
を使用するためにデータのインデックスを再作成する必要がなく、ドキュメントを手動で分析する必要がない場合は素晴らしいと思います。
私は既にfacet.method
,facet.limit
、facet.mincount
の異なる設定を試しましたが、これで問題は解決されませんでした。 他のアイデアはありますか?
<fieldType name="text_en_facets" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<!-- recognises e-mail addresses, urls, #-tags and @-mentions, alphanumeric words (possibly containing inner periods) -->
<tokenizer class="solr.PatternTokenizerFactory"
pattern="(?U)([\w-\.][email protected][\w-\.]+)|(https?:\S+)|((\s|^)[@#]\w+)|(\w+(\.\w+)?)" group="0"/>
<!-- there might be tokens containing trailing/leading white spaces -->
<filter class="solr.TrimFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" format="snowball"
words="stopwords/stopwords_en.txt,stopwords/stopwords_en_nltk.txt,stopwords/stopwords_en_twitter.txt"
ignoreCase="true"/>
<!-- kills urls -->
<filter class="solr.PatternReplaceFilterFactory" pattern="(?U)https?:\S+" replacement=""/>
<!-- kills numbers -->
<filter class="solr.PatternReplaceFilterFactory" pattern="(?U)^[0-9.,']+$" replacement=""/>
<!-- kills meaningless tokens -->
<filter class="solr.LengthFilterFactory" min="2" max="1024"/>
</analyzer>
</fieldType>
回答からパッチを試しましたか? – MatsLindh
こんにちは@MatsLindh、まだ – Alberto