文本字段中的字节限制(solr 4.10)

时间:2017-08-23 18:41:21

标签: solr

尝试将记录上传到SOLR时,我收到以下错误:

java.lang.Thread.run(Thread.java:745)\ n由:java.lang.IllegalArgumentException:文档在field = \“xml \”中包含至少一个巨大的术语(其UTF8编码长于最大长度32766),所有这些都被跳过了。请更正分析仪以不生成此类条款。第一个巨大术语的前缀是:'[60,99,108,105,110,105,99,97,108,100,111,99,117,109,101,110,116,32,120,109 ,108,110,115,61,34,117,114,110,58,104] ......',原始消息:字节长度最多为32766;得到了51132 \ n \ tat

...

org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:164)\ n \ t ... 49 more \ n由以下人员提供:org.apache.lucene.util.BytesRefHash $ MaxBytesLengthExceededException:bytes可以是最长32766;得到51132 \ n \ tat org.apache.lucene.util.BytesRefHash.add(BytesRefHash.java:284)\ n \ tat

该字段定义为:

<field name="xml" type="string_ci" multiValued="false"/>

,字段string_ci类型为:

<fieldType name="string_ci" class="solr.TextField" multiValued="false">      
  <analyzer>
    <tokenizer class="solr.KeywordTokenizerFactory"/>
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.HTMLStripCharFilterFactory"/>
  </analyzer>
</fieldType>

1 个答案:

答案 0 :(得分:0)

索引大尺寸字词的解决方法之一是使用text_general类型而不是string

i.e. In schema.xml you may replace 

<fieldType name="string_ci" class="solr.TextField" multiValued="false">      

by 

<fieldType name="text_general" class="solr.TextField" multiValued="false">      

注意:

  • 更改schema.xml后应重新启动Solr
  • 建议在更改schema.xml
  • 后重新索引数据