在Solr中," text"的最大大小是多少?领域?

时间:2015-10-04 17:38:43

标签: solr

在您的应用中使用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();  

2 个答案:

答案 0 :(得分:9)

<强>更新

我使用text fieldType进行了相同的单元测试。以下是我使用的声明。请注意,我已从声明中删除了分析器部分。

<fieldType name="text" class="solr.TextField"/>

我能够添加 500,000,000 个字符并成功编入索引。对于更高的值,我得到Java heap space错误,这与solr无关。

我尝试通过向字段添加大值来执行简单测试。我发现的限制是 32,766字节。之后它会抛出IllegalArgumentExceptionfieldType的{​​{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集合-更新“要更新的集合名称”