尝试将记录上传到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>
答案 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">
注意: