【问题标题】:Byte limit in text field (solr 4.10)文本字段中的字节限制(solr 4.10)
【发布时间】:2017-08-23 18:41:21
【问题描述】:

尝试将记录上传到 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 更多\n原因:org.apache.lucene.util.BytesRefHash$MaxBytesLengthExceededException:字节可以在长度最多 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>

【问题讨论】:

    标签: solr


    【解决方案1】:

    索引大尺寸术语的一种解决方法是使用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后重新索引数据

    【讨论】:

    • fieldType 的名称如何影响它的行为?
    猜你喜欢
    • 2015-09-21
    • 1970-01-01
    • 2010-12-07
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    相关资源
    最近更新 更多