2017-10-12 3 views
1

pysolrを使用してSolr(5.3.2)に文書を追加しようとしています。 大きなテキストといくつかのメタデータ(date、author ...)を含む単純なJSONオブジェクトを生成し、それをSolrに追加しようとします。 私の問題は、特定のサイズを超えて、Solrには、ドキュメントをインデックスに失敗し、次のエラーを返すことです。ソーラーで例外が発生する大きな文書を索引にする

Solr responded with an error (HTTP 400): [Reason: Exception writing document id e2699f18-ab5f-47f6-a450-60db5621879c to the index; possible analysis error.] 

は本当にフィールドの長さにどこかにハードコードされた制限があるようですが、私は見つけることができませんそれ。

default_obj['content'] = content[:13261] 

はエラーになりますしながら、

default_obj['content'] = content[:13260] 

が正常に動作します:

Pythonで遊んでは私がいることが分かりました。

contentフィールドは、通常のtype = "text_general"フィールドとしてschema.xmlに定義されています。

編集:ここで私はSolrのWeb管理インタフェースを介して手動でコンテンツを追加しようとしている

<field name="content" type="text_general" indexed="true" stored="true" multiValued="true"/> 


<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer type="index"> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
    <analyzer type="query"> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
</fieldType> 

schema.xmlを定義しているが、私は正確に同じ問題を取得します。

+0

このコンテンツを追加しようとしているフィールドにschema.xmlを共有できますか? – Mysterion

+0

は、schema.xml情報で投稿を編集しました – user2969402

答えて

0

ほとんどの場合、単一のトークンの側でハード・リミットに直面する可能性があります。これは32766と同じですが、この制限を変更することはできませんが、動作を変更してTokenizerを使用して文書を別々のトークンに変換する。

例えば、WhitespaceTokenizerを試すと、複数の用語/トークンで大きなフィールドが区切られ、ドキュメントが安全に索引付けされます。

+0

テキストが正しく配置されていて、最長のトークンはたぶん10文字です長いです。 – user2969402

関連する問題