在您的应用中使用Solr客户端时,text
多行字段的最大大小是多少?
我可以将巨大的xml文档作为文本发送吗?
E.g。
SolrInputDocument document = new SolrInputDocument();
document.addField("id", rec.getId());
document.addField("hugeTextFile_txt", hugeTextFile);
UpdateResponse response = solr.add(document);
solr.commit();
答案 0 :(得分:9)
<强>更新强>
我使用text
fieldType进行了相同的单元测试。以下是我使用的声明。请注意,我已从声明中删除了分析器部分。
<fieldType name="text" class="solr.TextField"/>
我能够添加 500,000,000 个字符并成功编入索引。对于更高的值,我得到Java heap space
错误,这与solr无关。
我尝试通过向字段添加大值来执行简单测试。我发现的限制是 32,766字节。之后它会抛出IllegalArgumentException
。 fieldType
的{{1}}为email
。
string
<fieldType name="string" class="solr.StrField" sortMissingLast="true" />
上面抛出的32767及以上的异常:
引起:java.lang.IllegalArgumentException:文档在字段中包含至少一个巨大的术语=&#34;电子邮件&#34; (其UTF8编码长度超过最大长度32766),所有这些都被跳过。请更正分析仪以不生成此类条款。第一个巨大术语的前缀是:&#39; [97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114, 115,116,117,118,119,120,121,122,97,98,99,100] ......&#39;,原始消息:字节长度最多为32766 ;得到了32767
我希望这会有所帮助。
答案 1 :(得分:0)
将solr字段更改为“ text_general”并更新solr模式很有帮助
用于更新Solr模式的命令:
solrctl instancedir --update“包含具有已编辑solr字段的架构文件的目录”
solrctl集合-更新“要更新的集合名称”